удаление вкладок по одному пробелу за раз - PullRequest
3 голосов
/ 27 апреля 2011

Как настроить vim так, чтобы я мог удалять вкладку по одному пробелу за раз, а не всю вкладку?Я часто хочу сделать это, когда пытаюсь выровнять несколько тестов для оператора if.В приведенном ниже примере условие 3 выровнено так, как я хочу, а условие 2 отключено на один пробел из-за вкладки.

if condition1 or \
    condition2 or \
   condition3:
    do something

Я использую vim 7.2.108 на OSX 10.6.7 и имею следующую строку режима в моем файле кода:

# ex: tabstop=4 softtabstop=1 shiftwidth=4 expandtab: 

FWIW, эта строка режима позволяет мнеиспользовать клавиши со стрелками для перехода по вкладке по одному пробелу за раз.

Обновление: вот изменения, которые я внес в пример файла vimrc из Bram Mooleanar:

map z :w<cr>
map q :q!<cr>
map m :make<cr>

set expandtab
set shiftwidth=4
set tabstop=4

set bs=2        " backspace over anything in insert mode
set showmatch       " display the matching bracket of the pair
set nowrap      " don't wrap line to fit window
set showmatch       " show matching paren, bracket, or brace
set ruler       " show current cursor position at bottom
set incsearch       " show next match as you type in search pattern
set ignorecase
set smartcase

syntax on       " enable syntax highlighting

Ответы [ 3 ]

4 голосов
/ 27 апреля 2011

Я бы сказал, поместите это в ваш файл .vimrc:

set expandtab

Который в основном превращает вкладки в пробелы, когда вы нажимаете клавишу Tab.

1 голос
/ 27 апреля 2011

Я бы просто нажал x в обычном режиме, чтобы удалить один символ.Я также укажу на замечательный сценарий indent / python.vim Эрика Максвина.Это на самом деле не меняет поведение backspace, но позволяет вам сделать что-то большее в соответствии с PEP8 - используя подразумеваемое продолжение строки Python с использованием скобок.При использовании сценария приведенный выше код будет выглядеть как

if (condition1 or
    condition2 or
    condition3):
    do something
0 голосов
/ 27 апреля 2011

Похоже, проблема в том, что вы используете сочетание вкладок и пробелов для управления выравниванием. В большинстве сред, в которых много людей работают над одними и теми же файлами, рекомендуется использовать только пробелы или только табуляции. Тем не менее, вы можете сопоставить ключ, чтобы удалить символ табуляции и вставить 3 пробела вместо него, добавив следующее в ваш vimrc.

map <F1> s   <ESC>

Если вы хотите сделать это в режиме вставки:

imap <F1> <BS>   

* Обратите внимание, что после ">"

есть три пробела
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...