Самый быстрый способ возврата пространств в TAB в VIM
Я всегда был одним из них, чтобы заменить TAB в VIM на количество пробелов (обычно 4).
Четыре строки, которые я почти всегда использую в моем конфигурационном файле .vimrc:
set tabstop=4
set shiftwidth=4
set expandtab
syntax on
В принципе, есть моменты, когда мне НЕОБХОДИМО использовать одну TAB (например, Make файлы), и я не знаю, как еще обойти это, помимо оставления файла, редактирования моего .vimrc, а затем перезагрузки файла.
Тем не менее, что является самым быстрым способом (изнутри VIM), чтобы вернуть его обратно к использованию TABS, а затем вернуться к моим первоначальным настройкам? Я ищу наименее сложное решение с наименьшими нажатиями клавиш.
Ответы
Ответ 1
VIM автоматически активирует TAB для make файла, предполагая, что вы называете его "makefile", в отличие от "Makefile". Не уверен, почему VIM все еще не обнаруживает тип с более низкой разницей в верхнем регистре, но это жизнь. (@Sedrik)
В стороне, другие альтернативные решения:
привязка к файлу (@ThorstenS @tungd):
autocmd FileType make setlocal noexpandtab
Переключатель RealTime (@ThorstenS):
Предполагая конфигурацию .vimrc, упомянутую в вопросе, выполните:
:set noet
(для переключения из пробелов в TAB)
и :set et
(для возврата)
Ответ 2
Просто используйте волшебную клавишу эвакуации, доступную в режиме вставки.
В * NIX это - ^ V по умолчанию, когда вы находитесь в режиме вставки. В Windows вам нужно выяснить, каков магический escape-символ - ^ V берется за что-то другое; Я думаю, что это может быть ^ Q или ^ S?
Итак! В вашем файле makefile:
this: this.c
<C-V><Tab>cc this.c
где применяются обычные значения:
означает hit ctrl-V (вы должны видеть, что ^ скрывается под курсором)
- нажмите клавишу табуляции. Бинго.
Работает для меня.
Примечание. Если вы используете настройки vim или код запуска, который разбивает вкладки при чтении файла, это, очевидно, кратковременное исправление. Я предпочитаю, чтобы узнать, как использовать команду retab, чтобы гарантировать, что файл является чистым tab-clean, потому что мне не нравится, когда файл будет затронут, если я сознательно не сделаю этого.
Ответ 3
Просто введите set noexpandtab
. Возможно, вы привязываете это к функциональному ключу.
Ответ 4
Vim по умолчанию имеет значение tabstop=8
и noexpandtab
, поэтому значения по умолчанию хорошо подходят для работы с Make файлами. Если ваш .vimrc использует настраиваемые параметры для tabstop
, expandtab
и т.д., Одно простое решение - обойти ваш .vimrc во время работы с Make файлами.
Из man-страницы (акцент мой):
-u {vimrc} Используйте команды в файле {vimrc} для инициализации. Все остальные инициализации пропускаются. Используйте это, чтобы редактировать файлы определенного типа. Он также может использоваться для пропуска всех инициализаций путем указания имени "НЕТ" . Подробнее см. ": Инициализация справки" в vim.
Так как я никогда не помню нужный флаг/значение/форматирование, я создал псевдоним Bash, который запоминает для меня: alias vimnone='vim -u NONE'
Ответ 5
Только эта конфигурация помогла мне решить эту проблему.
filetype plugin indent on
filetype detect
autocmd FileType make set noexpandtab