Vim странности в раскладке клавиш - PullRequest
2 голосов
/ 28 августа 2009

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

nomap go o <esc>

Это создает пустую строку, но вводит некоторое странное поведение. У меня есть умный отступ и автоматический отступ. Новая строка следует за отступами, но не удаляет их, даже если это вручную удаляет лишние пробелы. Он также добавляет один пробел, где курсор находится каждый раз.

Кто-нибудь есть какие-либо идеи, чтобы объяснить это поведение?

Ответы [ 3 ]

5 голосов
/ 28 августа 2009

Vim очень буквально в зависимости от того, как вы пишете свои команды отображения - он фактически обрабатывает пространство в вашем отображении до того, как он <ESC>. Другими словами, ваше отображение делает это:

nnoremap go o<SPACE><ESC>

Вы должны изменить его на:

nnoremap go o<ESC>

И убедитесь, что в отображении нет лишних пробелов!

0 голосов
/ 28 августа 2009

Как обычно, vim wiki имеет полезный совет: Быстрое добавление и удаление пустых строк . Хитрость заключается в set paste перед добавлением новой строки и после set nopaste. Кроме того, это установит метку для запоминания позиции курсора и возврата к тому месту, где вы были.

nnoremap go :set paste<CR>m`o<Esc>``:set nopaste<CR>
nnoremap gO :set paste<CR>m`O<Esc>``:set nopaste<CR>
0 голосов
/ 28 августа 2009

Я согласен с "слишком много PHP". Это соответствующий раздел из моего .vimrc

nnoremap <A-o> o<ESC>k
nnoremap <A-O> O<ESC>j

Я думаю, что это быстрее, поскольку вы возвращаете курсор на исходную строку (хотя и не на исходный символ).

...