2017-02-05 4 views
0

私はVimからEvil-modeに最近変換されました。私は環境をより身近なものにしようとしています。私が見逃していることの1つは、Vimのfindコマンドです。私は、関数内でfind-fileコマンドをラップすることによって、Emacsに似たようなものを設定しようとしています。これまでのところ私はこの持っている:私はそれが私に叫ぶのコマンドを実行するとWrong number of arguments {doc string} 0私はEmacsでfind-fileをシャドーしようとしていますが、なぜこの関数が引数について叫んでいますか?

(defun find nil 
    "Shadow vim find command, with helm." 
    (interactive) 
    (find-file)) 

を私は引数を追加しようと、何の成功がなかったしました。異なる何

(defun buflist nil 
    "List buffers in helm." 
    (interactive) 
    (helm-buffers-list)) 

:本当に混乱ビットは次のように、私はヘルム機能を同じように陰にし、それが働いたことありますか?これをどうやって解決するのですか?

答えて

0

find-fileは引数を必要とする、あなただけの

(find-file) 

のようにそれを呼び出すことはできませんデバッガは引数が必要とされているものを示しています

(filename &optional wildcards) 

また、それらを見るためにヘルプを呼び出すことができます。Chのf

別のオプションは、call-interactivelyを使用することです:

(call-interactively 'find-file) 
+0

素晴らしいおかげで、引数を取ることができます!私はデバッガの使い方を学ぶ必要があります。 – Jonathan

+0

'(find-file)'と書いて、 'C-x'' C-e'を押すだけです。 – choroba

3

find-fileは、引数としてファイル名を取り、関数のドキュメントを参照するためC-h fに慣れることになるでしょう。

interactiveは、例えば、

(defun find (filename) 
    (interactive "F") 
    (find-file filename)) 
+3

代わりに、あなた自身で引数を取得して渡すのではなく、 '(call-interactiveively# 'find-file)'を使うこともできます。 – phils

関連する問題