Vim: всегда перейдите для установки столбца при изменении строки

Существует ли эквивалент в Vim к идее "столбца цели" в Emacs?

Я хотел бы установить столбец цели, поэтому каждый раз, когда я перешел к новой строке в Режиме вставки, курсор автоматически расположен в тот данный столбец.

например, у меня есть текст:

foo bar
foo bar
foo bar

Я ввожу 123<space> промежуточный foo bar на первой строке и затем имеют (шоу символа вертикальной черты, где мой курсор):

foo 123 |bar
foo bar
foo bar

Я нажимаю стрелку вниз..., и я заканчиваю здесь:

foo 123 bar
foo bar|
foo bar

Но я хочу закончить здесь:

foo 123 bar
foo |bar
foo bar

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

1
задан 10.01.2010, 16:09

1 ответ

Вы могли использовать макрос - положение к столбцу и затем:

:map ,1 i123 <Esc>bj

... и продолжайте вводить, 1; или Вы могли использовать макро-функцию записи Vim (:help recording):

qai123 ^[bjq

(который хранит макрос в регистре, финал q запись концов).

Затем можно использовать повторный счет (из соответствующего столбца) и вызвать зарегистрированный макрос с @a:

100@a

Если Вы хотите ввести другой текст каждый раз и просто иметь более умную функцию следующей строки, можно создать макрос для этого:

:imap ,, <Esc>j5^V|i

Это ^V является элементом-управления-литерал-V, вводимым путем ввода ControlV дважды; следующий символ является каналом, который переместит курсор в столбец 5.

Вы использовали бы этот макрос в режиме ввода, вводя цифры, затем пространство, затем, который переместит Вас в следующую строку в столбце 5, все еще в режиме ввода. Затем, когда Вы сделаны: :iunmap ,,

4
ответ дан 12.12.2019, 09:23

Теги

Похожие вопросы