vimscriptで外部コマンドの出力結果を変数に代入する方法を探しています。

例えば、vimscriptでlsコマンドを実行し、その結果を変数に代入したいと思い、  
下記のコードを実行したのですが、

```

    redir => message
    execute ":!ls"
    redir END
    
    echo message
    
```

message変数には":!ls"というコマンドそのものが代入されており、  
lsの出力は代入されていませんでした。  
lsの出力をmessage変数に代入するにはどのようにすれば良いでしょうか？

よろしくお願いします
CC BY-SA 3.0
2017-08-12T07:08:44.447
37133
2017-08-12T10:27:47.900
22748
question
vim
vimscriptで外部コマンドの出力結果を変数に代入する方法を教えてください。
`system()` 関数が使えます。

```

    let message = system('ls')
    
```
CC BY-SA 3.0
2017-08-12T10:27:47.900
37137
2017-08-12T10:27:47.900
2541
37133
answer