2

ec2/ubuntuでvimを使用してdmenuを試行しています。Gitがインストールされています。

ここの手順に従ってください:http://leafo.net/posts/using_dmenu_to_open_quickly.html

vimでこのエラーが発生する理由はありますか?

Error detected while processing function DmenuOpen:
line 5:
E172: Only one file name allowed: tabe dmenu: cannot open display
4

2 に答える 2

3

主な問題はあなたの環境にあります: cannot open display. Dmenu は、補完メニューを表示するために X サーバーにアクセスする必要があります。端末で、次のようなものを定義する必要があります

$ export DISPLAY=:0.0

dmenu(またはxclock、またはgvim、または他のXアプリ)を実行することで、それが機能しているかどうかを確認できます。


次に、Vim 統合のコマンド

execute a:cmd . " " . fname

適切なエスケープがありません。そのため、E172 エラーが発生します。すべての種類のファイル名を処理するには、次を使用します

execute a:cmd . " " . fnameescape(fname)

それに加えて、防御的なプログラミングを少し行えば、これらすべてを防ぐことができたでしょう。の後、外部コマンドが実際に成功したかどうかsystem()を確認することをお勧めします。v:shell_error

于 2013-02-26T09:38:53.857 に答える
2

何らかの理由で、関数が複数のファイル名を渡しているか、Vimが複数のファイル名として理解しているもの、:tabeまたは1つの:eファイル名しか処理できないものを渡しています。

名前にスペースが含まれているファイルですか?

交換

execute a:cmd . " " . fname

echo fname

に渡されるものを確認し:tabeます。

于 2013-02-26T07:41:17.920 に答える