2016-12-10 14 views
2

vim 'scriptnames'コマンドは、読み込まれたすべてのスクリプトを出力します。問題は、フィルタリング/検索/検索の方法が見つからないということです。私はこれを "目のブルートフォース"によって行う必要なく、スクリプトを探したい。vim 'scriptnames'コマンドの検索方法

+0

これは純粋なvimの方法ですが、 'tmux'の中でvimを実行してから' tmux'の検索機能を使って検索してみましょう。また、端末エミュレータの中にいる場合は、検索機能も使用します。 –

答えて

5

あり、scriptコマンドのようなものはありませんのみscriptencodingscriptnames:h :scrによれば、scrと略記することができます)。私はあなたがscriptnamesを探していると推測します。

Vimの8を使用すると、:filterでほとんどのコマンドの結果をフィルタリングすることができます。

:filter /pattern/ scriptnames 

(参照:h :filterを)。

:redir >file 
:scriptnames 
:redir END 

(参照:h :redir):Vimの古いバージョンのあなたがリダイレクトをキャンセル、その後、:scriptnamesを実行する前に、ファイルにすべてのメッセージをリダイレクトすることができますして

。また、あなたはその後、バッファにレジスタの内容を貼り付け、レジスタにメッセージをリダイレクトすることができます。

:redir @a 
:scriptnames 
:redir END 
:new 
"aP 

最後に、ティム教皇のプラグインscriptease:scriptnamesを実行し、QuickFixリストに結果をロードするコマンド:Scriptnamesが追加されます。

+0

FYI ':scriptnames'は':script'に短縮できます。 – romainl

+1

@romainl私が言ったように、それは ':scr'と省略することができます。古いバージョンのVimでは、 ':scr'と':scriptnames'( ':script'を含む)の間で短縮される可能性もありますが、最近は落胆しています。 –

+0

だから ':script'が存在します。 vimスクリプトでは短い名前を付けないようにしていますが、これは何も役立たずに読みにくいものにしてしまいますが、コマンドラインでは奨励されていません。 – romainl

1

:redirの代わりに、​​の最新バージョンのvimがあります。

このように、ログの有効期間を調査した場合のように、:echo filter(split(execute('scritnames'), "\n"), 'v:val =~ "somepattern")または:new + put=execute(':scriptnames')+の検索をバッファ内で行うことができます。

関連する問題