Trong Vim, các cài đặt / lệnh bắt đầu bằng tiền tố (b:, g :) là gì?


26

Tôi đã cài đặt plugin này với Vundle và nhận thấy rằng nó có một số cài đặt (README gọi chúng là các biến) như:

b:javascript_fold

g:javascript_conceal

README nói tôi, "có thể thêm chúng vào của bạn .vimrcđể bật / tắt các tính năng của chúng." Nhưng tôi không chắc làm thế nào để thiết lập chúng thông qua :. Các biến này không có sẵn thông qua sethoặc echo, cũng không phải là các lệnh hoặc hàm. Làm thế nào tôi có thể thiết lập / kiểm tra những cái này?

Câu trả lời:


48

Đây là các biến nội bộ.

Bạn tạo và sửa đổi chúng bằng :letlệnh:

:let g:var_name = 1

Bạn tiêu diệt chúng với :unlet.

Bạn kiểm tra chúng với :echo.

Tiền tố hiển thị phạm vi của biến; từ :help internal-variables:

buffer-variable    b:    Local to the current buffer.
window-variable    w:    Local to the current window.
tabpage-variable   t:    Local to the current tab page.
global-variable    g:    Global.
local-variable     l:    Local to a function.
script-variable    s:    Local to a |:source|'ed Vim script.
function-argument  a:    Function argument (only inside a function).
vim-variable       v:    Global, predefined by Vim.

Thêm loại biến đó vào của bạn ~/.vimrcnhư thế này:

let g:var_name = 1

Thông thường, chỉ các biến toàn cục được thêm vào ~/.vimrccác biến cục bộ đệm của bạn sẽ được sử dụng trong các plugin filetype.


2
Để hoàn thiện: không có tiền tố: Trong một hàm: local to a function; mặt khác: toàn cầu
Tom Hale

11

Các biến cấu hình không phải là tùy chọn, chúng chỉ "mô phỏng" các biến cho plugin. Do đó, bạn không sử dụng :set, nhưng :let(và :echođể liệt kê giá trị hiện tại của chúng).

Sigil ở phía trước của biến xác định phạm vi của nó. g:có nghĩa là toàn cầu; những thứ thường cần được đặt trước khi plugin được tải, tức là bằng cách đặt

let g:javascript_conceal = 1

vào ~/.vimrcVim của bạn (và khởi động lại).

Vì một số cấu hình chỉ áp dụng cho một số loại tệp nhất định , chúng sử dụng b:tiền tố. Đặt chúng vào ~/.vimrcsẽ chỉ áp dụng chúng cho bộ đệm đã mở đầu tiên, đây không phải là điều bạn muốn. Thay vào đó, bạn cần nối vào cơ chế phát hiện filetype .

Nếu bạn chỉ muốn bật tùy chọn cấu hình cho một số kiểu tệp nhất định, :let b:var = valuethay vào đó, hãy sử dụng và đặt các lệnh tương ứng vào ~/.vim/after/ftplugin/{filetype}.vim, đó {filetype}là kiểu tệp thực tế (ví dụ javascript). (Điều này yêu cầu bạn phải có :filetype plugin on; việc sử dụng thư mục after cho phép bạn ghi đè mọi cài đặt kiểu tệp mặc định được thực hiện bởi $VIMRUNTIME/ftplugin/{filetype}.vim.)

Ngoài ra, bạn có thể xác định một :autocmd FileType {filetype} setlocal option=valuetrực tiếp trong của bạn ~/.vimrc, nhưng điều này có xu hướng trở nên khó sử dụng một khi bạn có nhiều tùy chỉnh.

autocmd Filetype javascript let b:javascript_fold = 1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.