Моє поточне налаштування передбачає 8 пробілів; як я міг би це переглянути?
Моє поточне налаштування передбачає 8 пробілів; як я міг би це переглянути?
Відповіді:
Це залежить від того, що ви маєте на увазі. Чи хочете, щоб фактичні символи вкладки у вашому файлі відображалися на 4 пробіли, чи під "вкладкою" ви маєте на увазі відступ , згенерований натисканням клавіші вкладки, в результаті чого файл буквально містить (до) 4 пробіли для кожну "вкладку" ви вводите?
Залежно від вашої відповіді, один із наступних наборів налаштувань повинен працювати для вас:
Для символів на вкладках, які відображаються у 4 просторах :
set tabstop=4
Якщо ви використовуєте фактичний символ вкладки у своєму вихідному коді, ви, мабуть, також хочете цих налаштувань (це фактично типові настройки, але ви можете встановити їх захисно):
set softtabstop=0 noexpandtab
Нарешті, якщо ви хочете, щоб відступ відповідав одній вкладці, слід також скористатися:
set shiftwidth=4
Для відступів, що складаються з 4 пробілів, але вводяться клавішею вкладки:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Щоб зробити вищезазначені налаштування постійними, додайте ці рядки до свого vimrc .
Якщо вам потрібно внести корективи або просто хочете зрозуміти, що всі ці варіанти означають, ось розбивка того, що означає кожен варіант:
tabstop
Ширина жорсткого упору, виміряна в "пробілах" - фактично (максимальна) ширина фактичного символу вкладки.
shiftwidth
Розмір «відступу». Він також вимірюється пробілами, тому, якщо ваш кодовий базисний відступ із символами вкладки, тоді ви хочете
shiftwidth
дорівнювати кількість символів вкладокtabstop
. Це також використовується такі речі , як=
,>
і<
команди.
softtabstop
Якщо встановити це ненульове значення, крім того
tabstop
, що змусить клавішу табуляції (у режимі вставки) вставити комбінацію пробілів (і, можливо, вкладок), щоб імітувати зупинки вкладок на цій ширині.
expandtab
Якщо це ввімкнути, клавіша табуляції (у режимі вставки) вставить пробіли замість символів вкладки. Це також впливає на поведінку
retab
команди.
smarttab
Якщо це ввімкнути, клавіша табуляції (у режимі вставки) вставить пробіли або вкладки, щоб перейти до наступного відступу наступного стовпчика, коли курсор знаходиться на початку рядка (тобто єдині попередні символи - пробіли).
Більш детальну інформацію про будь-яку з них див. У vim (наприклад ):help 'optionname'
:help 'tabstop'
~/.vimrc
- налаштування vim користувача. Більшість людей залишають налаштування системи в спокої і просто редагують налаштування користувача. Зауважте, що ~/.vimrc
це не буде, поки ви не створите його в більшості систем.
set softtabstop=4
функцію! Мені набридло намагатися читати ваш код з less
будь-яким іншим редактором, окрім того vim
, щоб побачити нерозумне відступ, тому що ви переосмислили вкладку як деяку кількість довільних пробілів (хоча решта системи думає інакше)! :-)
tabstop=8
про відступи, які складаються з 4 пробілів? Я не зміг зрозуміти причину, прочитавши описи різних налаштувань. Ще одна відповідь говорить про використання, tabstop=4
яке має для мене трохи більше сенсу.
tabstop
Опція керує шириною символу жорсткої вкладки. Якщо ви хочете, щоб ваші відступи складалися з 4 символів пробілу, а не одного символу вкладки, який має 4-х ширину, то ширина символу вкладки не має значення - свого роду . На практиці ви, мабуть, хочете, щоб ширина символів вкладки відрізнялася від ширини відступів, щоб зменшити ймовірність того, що символи вкладки маскуються як належні відступи. ( list
+ expandtab
може допомогти і тут). Також вкладки, що мають широку ширину 8-char, є "стандартним" - ваш термінал, Python та багато інших інструментів за замовчуванням для 8-char-wide-tabs.
Щоб визначити це на постійній основі для поточного користувача, створіть (або редагуйте) .vimrc
файл:
$ vim ~/.vimrc
Потім вставте конфігурацію нижче у файл. Після перезапуску vim застосовуються налаштування вкладки.
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
для перетворення існуючих tab
в spaces
. vim.wikia.com/wiki/Converting_tabs_to_spaces
Є кілька налаштувань, які визначають, чи потрібно використовувати пробіли чи вкладки.
Ось ось зручні функції, які можна визначити у вашому ~/.vimrc
файлі:
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
Використання:
:call UseTabs()
:call UseSpaces()
Щоб використовувати його за розширеннями файлів, можна використовувати наступний синтаксис (доданий до .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Дивіться також: Перетворення вкладок у пробіли .
Ось ще один фрагмент від Wikia, який можна використовувати для перемикання між вкладками та пробілами :
" 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
Це дозволяє використовувати 4 пробіли для кожної вкладки та відображення F9для переключення налаштувань.
Я скопіював і вставив це у мій файл .vimrc:
" 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 налаштування означають, що при натисканні Tab я отримую 4 пробіли. Третя установка означає, що коли я роблю V>
(тобто візуальне та відступ), я також отримую 4 пробіли.
Не настільки вичерпний, як прийнята відповідь, але це може допомогти людям, які просто хочуть щось скопіювати та вставити.
Помістіть потрібні налаштування у файл ~ / .vimrc файл - див. Рекомендації та кращі практики нижче.
Існує чотири основні способи використання вкладок у Vim:
Завжди тримайте «табустоп» у 8, встановлюйте «softtabstop» та «shiftwidth» на 4 (або 3 або що завгодно) та використовуйте «noexpandtab». Тоді Vim використовуватиме поєднання вкладок і пробілів, але вводить текст і буде вести себе так, як вкладка з’являється кожні 4 (або 3) символи.
Примітка. Якщо встановити «табустоп» на будь-яке інше значення, ніж 8, у багатьох місцях ваш файл може відображатися неправильно (наприклад, при його друкуванні).
Встановіть 'tabstop' та 'shiftwidth' на все, що вам більше подобається, і використовуйте 'expandtab'. Таким чином ви завжди будете вставляти пробіли. Форматування ніколи не буде зіпсовано, коли буде змінено "табло".
Встановіть "табло" та "ширину зсуву" на все, що вам зручніше, та використовуйте | modeline | щоб встановити ці значення при повторному редагуванні файлу. Працює лише при використанні Vim для редагування файлу.
Завжди встановлюйте параметри "tabstop" і "shiftwidth" на одне і те ж значення і "noexpandtab". Тоді це повинно працювати (лише для початкових відступів) для будь-яких налаштувань табулетів, якими користуються люди. Можливо, буде непогано мати вкладки після першого вставленого непорожнього простору, якщо це зробити. В іншому випадку вирівняні коментарі будуть помилковими, коли змінено 'tabstop'.
Джерело:
:help tabstop
:help tabstop
від vim.
І ще одне - використовувати
:retab
для перетворення існуючих tab
у spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
:set sw=4
Див. « Освоєння редактора VI»
Додайте рядок
set ts=4
у
~/.vimrc
файл для кожного користувача
або
/etc/vimrc
файл для всієї системи
Моя основна ~ / .vimrc з коментарем:
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 >>
Постійний для всіх користувачів (коли ви один на сервері):
# echo "set tabstop=4" >> /etc/vim/vimrc
Зазвичай на новому сервері apt-get purge nano mc
та на всіх інших, щоб заощадити ваш час. В іншому випадку ви будете перевизначити редактор git
, і crontab
т.д.
F10
в , nano
але я завжди робити деякі трюки з економією (можливо , F10
це рішення). чи він не працює screen
? Не можу згадати, просто ненавиджу)