set softtabstop=4
Удалить расширенную "вкладку" в Vim одним нажатием клавиши?
Я редактирую код Python с помощью Vim.
С помощью tabключа я получаю четыре пробела для отступа. Как я могу удалить эти пробелы одним ударом «Backspace» (?) Вместо четырех?
Для этого должна быть какая-то опция "set" ...
Вот мой .vimrc:
set autoindent set ts=4 set sw=4 set et
8 ответов на вопрос
- Популярные
- Новые
- С комментариями
- Активные
Вы можете использовать Ctrl+Dдля резервного копирования одной остановки табуляции. Это фактически перемещает всю строку влево на одну позицию табуляции; Ctrl+Tделает то же самое с правой стороны. Обратите внимание, что эти нажатия клавиш работают только в режиме вставки (используйте <<
и >>
для эквивалента в командном режиме).
ТЛ; др: set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab
Краткая форма: set ts=4 sts=-1 sw=0 et
объяснение
Если вы установите softtabstop
(или sts
) на -1
него, он будет автоматически вести себя так же, как tabstop
( ts
), что избавит вас от хлопот, если вы сильно измените табуляции. Параметр shiftwidth
( sw
) 0
должен эффективно делать то же самое, tabstop
что и.
В деталях
shiftwidth
sw
Количество пробелов для каждого шага (авто) отступа. Используется для
cindent
, >>, <<и т.д.
Когда нульtabstop
значение будет использовано.
tabstop
ts
Количество пробелов, которые в файле учитываются. Также см . : команда retab и
softtabstop
опция.
softtabstop
sts
Количество пробелов, которые Tabучитываются при выполнении операций редактирования, таких как вставка Tabили использование BS. Такое ощущение, что Tabs вставляются, хотя на самом деле используется сочетание пробелов и s. Это полезно, чтобы сохранить
tabs
настройку is в ее стандартном значении, в то же время имея возможность редактировать, как установленоsts
. Когдаsts
отрицательно, используется значениеshiftwidth
. Это избавит вас от хлопот, если вы сильно меняете табуляции. Еслиexpandtab
не установлено, количество пробелов минимизируется с помощью Tabs.
expandtab
et
В режиме вставки: используйте соответствующее количество пробелов для вставки. Пространства используются в абзацах с >и <команд, и когда
autoindent
включен. Чтобы вставить реальную вкладку, когдаexpandtab
она включена, используйте Ctrl- V Tab. Смотрите также : retab
Я написал GreedyBackspace.vim для тех, кто хотел что-то подобное. Лично я не пользуюсь им, так что я давно его обновил. Я не получил никаких сообщений об ошибках в последнее время, хотя.
Несколько вариантов:
- Вы можете «восстановить» все пробелы, чтобы они были заменены на вкладки. Таким образом, они могут быть легко удалены.
- Вы могли бы (это не проверено, поэтому я просто предлагаю идеи здесь) сделать функцию, которая 'выполняет в нормальном режиме 4 раза клавишу возврата. Затем сопоставьте это с чем-то. Однако он не может знать, будут ли удаляться пробелы или некоторые важные символы, так что это потенциально небезопасно.
- «4X» удалит последние 4 символа (это большой X, а не маленький, маленький будет действовать как клавиша Del ».
Самый простой способ <<
, повторите с.
Вы проверили, используя настройки расширенных вкладок в VIM?
:set noet
Я обычно предпочитаю держать вкладки во время работы с файлами.
Когда это требуется, я заменяю вкладки на 4 пробела или столько, сколько требуется.
:%s/<ctrl+V><tab>/ /g ----
В качестве небольшого бонуса, ваш исходный файл короче на 3 символа за вкладку :-)
Я не думаю, что есть выход. После того, как клавиша табуляции расширена до четырех пробелов, vim не может знать, что они когда-либо были табуляцией.
Похожие вопросы
-
13
Какие функции Vim вы используете?
-
1
Невозможно понять, где зачем требовать обнаружения ASCII и HEX в строке состояния Vim
-
3
Vim: Как обрабатывать файлы Unicode с текстом на нескольких (более двух) языках?
-
-
9
Аддоны Firefox, чтобы пойти с Vimperator
-
3
Чтобы повторить PWD в Vim's: -режим к документу
-
1
В любом случае vim не считает специальные символы словами?
-
8
Vimperator копия / вставка
-
2
Чтобы иметь цвета в Vim LaTeX-файлах, как в Gvim
-
3
Команда Vim для сопоставления CapsLock с Escape
-
9
Хороший урок Vim?