驚いたことに、vimが上手になると、Eclipseなどの標準のIDEよりもさらに高速にコーディングできます。しかし、私が本当に見逃していることの1つは、特に長い変数名と関数のコード補完です。
vimでPerlのコード補完を有効にする方法はありますか?
Ctrl- P(前の一致を取得)およびCtrl- N(次の一致を取得)は、一種の擬似コード補完です。基本的に、編集中のファイル(Backwards for-、Forwards for Ctrl- )(および開いているバッファー、およびTAGSを使用している場合はTAGファイル内の何か)で、入力内容で始まる単語を検索し、ドロップダウンリストを追加します。 。インテリセンスでなくても、変数や関数名に対して驚くほどうまく機能します。通常、私は-を使用します。これは、探している変数または関数が通常、コードの背後にあるためです。また、Vimの同じコピーを開いたままにしておくと、以前に開いたファイルが検索されます。PCtrlNCtrlP
Vim7はオムニコンプリーションをサポートしています。
たとえば、vimrcにこれがあります
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
次に、挿入モードで--Ctrlを押すと、オートコンプリートの可能性のドロップダウンリストが表示されます。X CtrlO
これがperlのomnicfuncです。しかし、それがどれほどうまく機能するかはわかりません。
さて、Vimの一般的な補完メカニズムは驚くほど優れており、挿入モードでCtrl-を使用するだけです。Nまた、Cx Clを使用すると、行の補完が非常に便利になります。
perlのこのvimスクリプトもチェックしてください。
ファイルに以下を追加すると、標準のCtrl+NとCtrl+Pはさらにうまく機能します。~/.vim/ftplugin/perl.vim
set iskeyword+=:
次に、モジュール名などをオートコンプリートします。
他の回答の .vimrc クリップは少し間違っています。タブ キーをオートコンプリート キーに変えるには、次のコードを使用します。
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
function! InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-p>"
endif
endfunction
Perlmonks のこのスレッドでは、これと他の多数の vim トリックを見つけることができます。これは、さらに多くのカスタマイズを備えたさらに多くのスレッドにリンクしています。
Ctrl+N
これは、Perl Hacksの本で、パッケージの完了方法とともに説明されています。強くお勧めします。
SuperTab プラグインを確認してください: http://www.vim.org/scripts/script.php?script_id=1643 ^ の代わりにタブとシフトタブを使用して補完 (OmniCompletion または通常の補完) を行うことができます。 N および ^P。