26

驚いたことに、vimが上手になると、Eclipseなどの標準のIDEよりもさらに高速にコーディングできます。しかし、私が本当に見逃していることの1つは、特に長い変数名と関数のコード補完です。

vimでPerlのコード補完を有効にする方法はありますか?

4

8 に答える 8

32

Ctrl- P(前の一致を取得)およびCtrl- N(次の一致を取得)は、一種の擬似コード補完です。基本的に、編集中のファイル(Backwards for-、Forwards for Ctrl- )(および開いているバッファー、およびTAGSを使用している場合はTAGファイル内の何か)で、入力内容で始まる単語を検索し、ドロップダウンリストを追加します。 。インテリセンスでなくても、変数や関数名に対して驚くほどうまく機能します。通常、私は-を使用します。これは、探している変数または関数が通常、コードの背後にあるためです。また、Vimの同じコピーを開いたままにしておくと、以前に開いたファイルが検索されます。PCtrlNCtrlP

于 2008-09-10T13:59:16.263 に答える
9

Vim7はオムニコンプリーションをサポートしています。

たとえば、vimrcにこれがあります

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

次に、挿入モードで--Ctrlを押すと、オートコンプリートの可能性のドロップダウンリストが表示されます。X CtrlO

これがperlのomnicfuncです。しかし、それがどれほどうまく機能するかはわかりません。

于 2008-09-10T14:03:45.817 に答える
8

さて、Vimの一般的な補完メカニズムは驚くほど優れており、挿入モードでCtrl-を使用するだけです。Nまた、Cx Clを使用すると、行の補完が非常に便利になります。

perlのこのvimスクリプトもチェックしてください。

于 2008-09-10T14:00:04.670 に答える
5

ファイルに以下を追加すると、標準のCtrl+NCtrl+Pはさらにうまく機能します。~/.vim/ftplugin/perl.vim

set iskeyword+=:

次に、モジュール名などをオートコンプリートします。

于 2008-09-16T18:00:36.587 に答える
4

他の回答の .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 トリックを見つけることができます。これは、さらに多くのカスタマイズを備えたさらに多くのスレッドにリンクしています。

于 2008-09-16T14:13:34.213 に答える
3

Ctrl+N

これは、Perl Hacksの本で、パッケージの完了方法とともに説明されています。強くお勧めします。

于 2008-09-10T14:05:30.210 に答える
3

SuperTab プラグインを確認してください: http://www.vim.org/scripts/script.php?script_id=1643 ^ の代わりにタブとシフトタブを使用して補完 (OmniCompletion または通常の補完) を行うことができます。 N および ^P。

于 2008-09-15T14:41:37.587 に答える
3

https://github.com/c9s/perlomni.vim

于 2009-11-27T19:39:40.510 に答える