Если у Вас есть деньги: Рациональная IBM Очищает , чрезвычайно мощная утечка памяти промышленной силы и детектор повреждения памяти для C/C++. Существует для Windows, Соляриса и Linux. Если Вы только для Linux и хотите дешевое решение, пойдите для Valgrind.
в статье здесь рассказывается о той же самой проблеме и о том, что нужно добавить в vimrc, чтобы ее исправить.
inoremap <CR> <CR><Space><BS>
nnoremap o o<Space><BS>
nnoremap O O<Space><BS>
Я точно не тестировал это.
также та же статья ссылки на более короткое альтернативное решение .
Используйте Shift + S , чтобы начать редактирование с пустой строки (очевидно, из командного режима). Курсор начнется с ожидаемого уровня отступа.
Другое решение-не-ответ-вопрос-как-спрос-но-является-лучшим-общим:
При вводе начала фигурная скобка в режиме вставки, это вставит соответствующий набор фигурных скобок и оставьте курсор на новой строке посередине.
:imap { {<CR>}<Esc>O
Аналогично, это автоматически вставит совпадающие скобки и квадратные скобки.
:imap ( ()<Left>
:imap [ []<Left>
(Удалите ведущие :
при добавлении к vimrc
.)
Как я прокомментировал ответ Виктора, изменение поведения отступа Vim оставит «пустые» строки, содержащие посторонние пробелы во всех ваших файлах. ИМО, это совершенно недопустимо.
My preferred method is {
as it outpaces {
by several strokes. I get in a rut with it, though, and end up just using o or O to grab new, properly-indented lines off an empty when I should be using S.
That is, set up your bracing structure and open line-above:
if (true) {
}//cursor here, press shift-o
And you get the indenting you expect.
The open-above trick isn't any fewer keypresses than
, but with escape remapped and shift being chorded, you can throw it in quite fast.
Also, don't forget your manual indent reset and block-movement. If you're inside a mangled curly brace block, simply use ={
(or =i{
if you're on top of one of the braces). I use that when I have a Good Idea that needs to see text asap, and I don't worry about any formatting frippery until I take a breather.
Когда это происходит со мной, я иногда использую ddko
(или ddO
), чтобы удалить строку без достаточного количества пробелов и открыть новую строку с правильным отступом. Или я просто нажму A
, а затем Tab
столько раз, чтобы добраться до правильного отступа.