Tôi nghĩ rằng vấn đề là do cách mà Vim xử lý một hàm. Từ các tài liệu cho [[
:
*[[*
[[ [count] sections backward or to the previous '{' in
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
Trừ khi một phần được bằng cách nào đó được xác định đặc biệt cho file python đâu đó (tôi không thuyết phục này có thể là họ đang nghĩa vụ phải được hai chữ nroff phần), điều này sẽ đảm nhận rằng cần có một dấu ngoặc mở trong cột đầu tiên, không liên quan đến các tệp python.
Tôi muốn đề nghị hỏi về danh sách gửi thư của Vim để xem có bất kỳ plugin hoặc công việc nào cho việc này hay không. Ngoài ra, bạn có thể xác định một ánh xạ như thế này:
nmap gd :let varname = '\<<C-R><C-W>\>'<CR>?\<def\><CR>/<C-R>=varname<CR><CR>
Điều này có thể được thực hiện một cách thanh lịch hơn với chức năng, nhưng đây chỉ là một cách nhanh chóng hoạt động. Nó bản đồ gd
đến một chức năng mà bộ biến 'varname' để giữ từ con trỏ đang bật, tìm kiếm lạc hậu cho def và sau đó tìm kiếm về phía trước cho biến:
: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
"[[" * làm * hoạt động trong các tệp Python để tìm kiếm một lớp/lớp trước đó. Từ những gì tôi có thể nói, nó được định nghĩa lại trong tệp "python.vim" trong ftplugin, để thực hiện một "Python_jump". Một (liên quan?) Vấn đề là, trong khi "[[" hoạt động tốt trong chế độ bình thường, nó không hoạt động tốt trong chế độ trực quan. Tôi đoán có chỉ là một lỗi ở đó, nhưng tôi vẫn giữ hy vọng rằng tôi chỉ thiếu một cái gì đó và là ngu ngốc. –
Tôi đoán '[[' hoạt động trong các tệp Python do ánh xạ tùy chỉnh, nhưng 'gd' dựa trên việc cài đặt sẵn của' [['. – DrAl