Клавиша табуляции == 4 пробела и автоматический отступ после фигурных скобок в Vim
-
04-07-2019 - |
Вопрос
Как создать vi - Vim никогда не использует вкладки (плохо переводит пробелы в табуляции!), делает клавишу табуляции == 4 пробела и автоматически вставляет код после фигурных блоки скобок, как Emacs делает?
Кроме того, как мне сохранить эти настройки, чтобы мне больше не приходилось их вводить?
Я видел другие вопросы, связанные с этим, но всегда кажется, что это немного отличается от того, что я хочу.
Решение
Как было указано в нескольких ответах ниже, предпочтительным методом сейчас НЕ является использование smartindent, а вместо этого используйте следующее (в вашем vimrc ).
filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
<Ч>
<забастовка> В вашем .vimrc: файле:
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
К файлам справки требуется некоторое время, чтобы привыкнуть, но чем больше вы читаете, тем лучше становится Vim:
:help smartindent
Еще лучше, вы можете встроить эти параметры в ваш источник для переносимости:
:help auto-setting
Чтобы увидеть текущие настройки:
:set all
Как указывает graywh в комментариях, smartindent был заменен на cindent, который " работает более умно " ;, хотя до сих пор в основном для языков с C-подобным синтаксисом:
:help C-indenting
Забастовка> <забастовка> удар>
Другие советы
Связано, если вы открываете файл, который использует как табуляции, так и пробелы, при условии, что у вас есть
set expandtab ts=4 sw=4 ai
Вы можете заменить все вкладки пробелами во всем файле на
:%retab
Лучший способ получить отступ для конкретного типа файла - это использовать отступ для плагина типа файла для
в вашем vimrc. Затем вы можете указать такие вещи, как set sw = 4 sts = 4 et
в .vim / ftplugin / c.vim, например, без необходимости делать их глобальными для всех редактируемых файлов и других не-C Синтаксисы типов тоже будут иметь правильные отступы (даже lisps) .
Чтобы иметь в большинстве файлов вкладки из 4 пробелов, реальный символ табуляции шириной 8 в файлах Makefile и автоматическое отступление в различных файлах, включая C / C ++, поместите это в файл ~ / .vimrc
: р>
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Use filetype detection and file-based automatic indenting.
filetype plugin indent on
" Use actual tab chars in Makefiles.
autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif
" For everything else, use a tab width of 4 space chars.
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.
Во многих системах Linux, таких как Ubuntu, файл .vimrc
по умолчанию не существует, поэтому рекомендуется сначала создать его.
Не используйте файл .viminfo
, который существует в домашнем каталоге. Он используется для другой цели.
Шаг 1. Перейдите в свой домашний каталог
cd ~
Шаг 2. Создайте файл
vim .vimrc
Шаг 3. Добавьте указанную выше конфигурацию
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab
Шаг 3. Сохраните файл, нажав Shift + ZZ .
Рекомендуется использовать отступы на основе типов файлов и использовать smartindent и cindent, только если этого недостаточно.
Добавьте следующее в ваш .vimrc
set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on
Надеюсь, это поможет вам как другой ответ.
отредактируйте ваш ~ / .vimrc
$ vim ~/.vimrc
добавьте следующие строки:
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
Из вики VIM :
:set tabstop=4
:set shiftwidth=4
:set expandtab
Авто-отступ основан на текущем режиме синтаксиса. Я знаю, что если вы редактируете Foo.java, то вводите {
и нажимаете Enter для отступа следующей строки.
Что касается вкладок, есть две настройки. В Vim введите двоеточие и затем "set tabstop = 4" который установит вкладки для отображения в виде четырех пробелов. Нажмите еще раз на двоеточие и введите "set expandtab" который вставит пробелы для вкладок. Р>
Вы можете поместить эти настройки в .vimrc (или _vimrc в Windows) в своем домашнем каталоге, поэтому их нужно вводить только один раз.