私はこの問題は、Vimが関数を処理する方法によるものだと思います。 [[
のドキュメントから:セクションは何とかどこかのpythonファイル(私は彼らがセクションnroffの2文字のことになっているとこれが可能である確信していない)のために特別に定義されていない限り
*[[*
[[ [count] sections backward or to the previous '{' in
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
、これは仮定しますPythonファイルには関係ない最初の列には中括弧があるはずです。
私は、Vimのメーリングリストで、このためのプラグインや回避策があるかどうかを確認することをお勧めします。
nmap gd :let varname = '\<<C-R><C-W>\>'<CR>?\<def\><CR>/<C-R>=varname<CR><CR>
これは、機能をよりエレガントに行うことができるが、これは動作するはずだけ迅速ハックだった:別の方法として、あなたは、このようなマッピングを定義することができます。これは、カーソルが上にある単語を保持する変数「VARNAME」を設定する関数にgd
をマップdefのために逆方向に検索して、変数のために前方検索:
:let varname = " Variable setting
'\< " String start and word boundary
<C-R><C-W> " Ctrl-R, Ctrl-W: pull in the word under the cursor
\>' " Word boundary and string end
<CR> " Enter - finish this command
? " Search backwards for...
\<def\> " def but not undefined etc (using word boundaries)
<CR> " Enter - Perform search
/ " Now search forward
<C-R>= " Pull in something from an expression
varname<CR> " The expression is 'varname', so pull in the contents of varname
<CR> " Enter - perform search
"[[* *は以前のdef/classを検索するためのPythonファイルで動作します。私が知る限り、ftpluginの "python.vim"ファイルで "Python_jump"を実行するために再定義されています。 A(関連?)の問題は、「[[」は通常モードで正常に動作しますが、ビジュアルモードではうまく動作しません。私はそこにバグがあると思っていますが、私はまだ何かを逃してばかげているという希望を抱いています。 –
'[[' 'はカスタムマッピングのためにPythonファイルで動作しますが、' gd'は '[[' 'の組み込みの実装に基づいています。 – DrAl