Cài đặt hiện tại của tôi giả định 8 khoảng trắng; Làm thế nào tôi có thể xác định lại nó?
Cài đặt hiện tại của tôi giả định 8 khoảng trắng; Làm thế nào tôi có thể xác định lại nó?
Câu trả lời:
Nó phụ thuộc vào ý bạn là gì. Bạn có muốn các ký tự tab thực tế trong tệp của mình xuất hiện rộng 4 khoảng trắng hoặc bằng "tab" bạn thực sự có nghĩa là một thụt lề , được tạo bằng cách nhấn phím tab, điều này sẽ dẫn đến tệp có chứa (tối đa) 4 ký tự khoảng trắng cho mỗi "tab" bạn gõ?
Tùy thuộc vào câu trả lời của bạn, một trong các bộ cài đặt sau sẽ phù hợp với bạn:
Đối với các ký tự tab xuất hiện rộng 4 không gian :
set tabstop=4
Nếu bạn đang sử dụng ký tự tab thực tế trong mã nguồn của mình, có lẽ bạn cũng muốn các cài đặt này (đây thực sự là các mặc định, nhưng bạn có thể muốn đặt chúng một cách phòng thủ):
set softtabstop=0 noexpandtab
Cuối cùng, nếu bạn muốn thụt lề tương ứng với một tab, bạn cũng nên sử dụng:
set shiftwidth=4
Đối với các thụt lề bao gồm 4 ký tự khoảng trắng nhưng được nhập bằng phím tab:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Để làm cho các cài đặt ở trên vĩnh viễn, hãy thêm các dòng này vào vimrc của bạn .
Trong trường hợp bạn cần thực hiện điều chỉnh, hoặc đơn giản là muốn hiểu tất cả các tùy chọn này có nghĩa là gì, thì đây là một sự cố về ý nghĩa của từng tùy chọn:
tabstop
Độ rộng của một tabstop cứng được đo bằng "khoảng trắng" - hiệu quả là chiều rộng (tối đa) của một ký tự tab thực tế.
shiftwidth
Kích thước của một "thụt". Nó cũng được đo bằng khoảng trắng, vì vậy nếu mã cơ sở của bạn thụt lề với các ký tự tab thì bạn muốn
shiftwidth
bằng số lần ký tự tabtabstop
. Điều này cũng được sử dụng bởi những thứ như=
,>
và<
các lệnh.
softtabstop
Đặt giá trị này thành giá trị khác không,
tabstop
sẽ làm cho phím tab (ở chế độ chèn) chèn một tổ hợp khoảng trắng (và có thể là các tab) để mô phỏng các điểm dừng của tab ở độ rộng này.
expandtab
Kích hoạt tính năng này sẽ làm cho phím tab (ở chế độ chèn) chèn khoảng trắng thay vì ký tự tab. Điều này cũng ảnh hưởng đến hành vi của
retab
lệnh.
smarttab
Kích hoạt tính năng này sẽ làm cho phím tab (trong chế độ chèn) chèn khoảng trắng hoặc tab để đi đến điểm thụt tiếp theo của tabstop tiếp theo khi con trỏ ở đầu dòng (nghĩa là các ký tự trước duy nhất là khoảng trắng).
Để biết thêm chi tiết về bất kỳ trong số này xem trong vim (ví dụ ):help 'optionname'
:help 'tabstop'
~/.vimrc
là cài đặt vim của người dùng. Hầu hết mọi người để lại các cài đặt hệ thống một mình và chỉ cần chỉnh sửa cài đặt người dùng. Lưu ý rằng ~/.vimrc
sẽ không tồn tại cho đến khi bạn tạo nó trên hầu hết các hệ thống.
set softtabstop=4
tính năng! Tôi mệt mỏi khi cố gắng đọc mã của bạn với less
, hoặc bất kỳ trình soạn thảo nào khác ngoại trừ vim
, chỉ thấy sự thụt lề lập dị vì bạn đã xác định lại tab là một số khoảng trắng tùy ý (mặc dù phần còn lại của hệ thống nghĩ khác)! :-)
tabstop=8
cho các vết lõm bao gồm 4 khoảng trắng không? Tôi không thể có được lý do sau khi đọc các mô tả của các cài đặt khác nhau. Một câu trả lời khác nói rằng sử dụng tabstop=4
nó có ý nghĩa hơn đối với tôi.
tabstop
Tùy chọn kiểm soát độ rộng của ký tự tab cứng. Nếu bạn muốn thụt lề của mình bao gồm 4 ký tự khoảng trắng, thay vì các ký tự tab đơn có chiều rộng 4, thì chiều rộng của ký tự tab của bạn không thành vấn đề - sắp xếp . Trong thực tế, bạn có thể muốn chiều rộng ký tự tab của bạn khác với chiều rộng của vết lõm của bạn, để giảm cơ hội các ký tự tab giả mạo như là vết lõm thích hợp. ( list
+ expandtab
cũng có thể trợ giúp ở đây) Ngoài ra, các tab rộng 8 char là "tiêu chuẩn" - thiết bị đầu cuối của bạn, Python và nhiều công cụ khác mặc định là các tab rộng 8 char.
Để xác định điều này trên cơ sở vĩnh viễn cho người dùng hiện tại, hãy tạo (hoặc chỉnh sửa) .vimrc
tệp:
$ vim ~/.vimrc
Sau đó, dán cấu hình bên dưới vào tập tin. Khi vim được khởi động lại, cài đặt tab sẽ được áp dụng.
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
:retab
để chuyển đổi hiện có tab
sang spaces
. vim.wikia.com/wiki/Converting_tabs_to_spaces
Có một vài cài đặt xác định nên sử dụng dấu cách hay tab.
Vì vậy, đây là các chức năng tiện dụng có thể được xác định trong ~/.vimrc
tệp của bạn :
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
Sử dụng:
:call UseTabs()
:call UseSpaces()
Để sử dụng nó cho mỗi phần mở rộng tệp, có thể sử dụng cú pháp sau (thêm vào .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Xem thêm: Chuyển đổi các tab thành không gian .
Đây là một đoạn khác từ Wikia có thể được sử dụng để chuyển đổi giữa các tab và khoảng trắng :
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
Nó cho phép sử dụng 4 khoảng trắng cho mỗi tab và ánh xạ F9để chuyển các cài đặt.
Tôi đã sao chép và dán tệp này vào tệp .vimrc của mình:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
2 cài đặt đầu tiên có nghĩa là khi tôi nhấn Tab, tôi nhận được 4 khoảng trắng. Cài đặt thứ ba có nghĩa là khi tôi làm V>
(tức là trực quan và thụt lề) tôi cũng nhận được 4 khoảng trắng.
Không toàn diện như câu trả lời được chấp nhận nhưng nó có thể giúp những người chỉ muốn một cái gì đó sao chép và dán.
Đặt cài đặt mong muốn của bạn vào tệp ~ / .vimrc - Xem bên dưới để biết một số nguyên tắc và thực tiễn tốt nhất.
Có bốn cách chính để sử dụng các tab trong Vim:
Luôn luôn giữ 'tabstop' ở mức 8, đặt 'softtabstop' và 'shift' thành 4 (hoặc 3 hoặc bất cứ điều gì bạn thích) và sử dụng 'noExandtab'. Sau đó, Vim sẽ sử dụng hỗn hợp các tab và dấu cách, nhưng gõ và sẽ hoạt động giống như một tab xuất hiện cứ sau 4 (hoặc 3) ký tự.
Lưu ý: Đặt 'tabstop' thành bất kỳ giá trị nào khác ngoài 8 có thể làm cho tệp của bạn xuất hiện sai ở nhiều nơi (ví dụ: khi in nó).
Đặt 'tabstop' và 'shift' thành bất cứ điều gì bạn thích và sử dụng 'extendtab'. Bằng cách này, bạn sẽ luôn chèn không gian. Định dạng sẽ không bao giờ bị rối khi thay đổi 'tabstop'.
Đặt 'tabstop' và 'shift' thành bất cứ điều gì bạn thích và sử dụng | modeline | để đặt các giá trị này khi chỉnh sửa lại tệp. Chỉ hoạt động khi sử dụng Vim để chỉnh sửa tệp.
Luôn đặt 'tabstop' và 'độ rộng băng thông' thành cùng một giá trị và 'noExandtab'. Điều này sau đó sẽ hoạt động (chỉ dành cho thụt lề ban đầu) cho bất kỳ cài đặt tabstop nào mà mọi người sử dụng. Có thể có các tab sau lần đầu tiên được chèn vào khoảng trắng nếu bạn thực hiện việc này. Nếu không, các nhận xét được căn chỉnh sẽ bị sai khi 'tabstop' được thay đổi.
Nguồn:
:help tabstop
:help tabstop
trong vim.
Một điều nữa, sử dụng
:retab
để chuyển đổi hiện có tab
thành spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
:set sw=4
Thêm dòng
set ts=4
trong
~/.vimrc
tệp cho mỗi người dùng
hoặc
/etc/vimrc
tệp cho toàn hệ thống
Cơ bản của tôi ~ / .vimrc với nhận xét:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
Vĩnh viễn cho tất cả người dùng (khi bạn một mình trên máy chủ):
# echo "set tabstop=4" >> /etc/vim/vimrc
Thông thường trên máy chủ mới apt-get purge nano mc
và tất cả những thứ khác để tiết kiệm thời gian của bạn. Nếu không, bạn sẽ xác định lại trình soạn thảo git
, crontab
v.v.
F10
trong nano
nhưng tôi luôn luôn làm một số thủ thuật với tiết kiệm (có thể F10
là một giải pháp). hoặc nó không hoạt động screen
? Tôi không thể nhớ, chỉ ghét nó)