4

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

Есть ли способ сделать то, что я пытаюсь достичь в VIM? то есть, чтобы перейти к определенному столбцу в пустой строке. Даже если бы я мог сделать что-то вроде 70 70l (переместить 70 пробелов вправо), это было бы удивительно, но это не работает в строке без текста.

4 ответа4

10

Вы также можете рассмотреть virtualedit, который позволяет перемещать курсор в любом месте независимо от того, есть ли там символ.

Используйте (краткая форма set ve=all)

:set virtualedit=all

чтобы включить его. Тогда используйте 70| перейти к 70 колонне. Взять по адресу :help 'virtual edit'

Чтобы отключить его, используйте :set virtualedit= (краткая форма set ve=)

3

Вы можете сделать 70i с последующим esc (что 7 0 я ПРОБЕЛ Esc).

Для конкретного случая, который вы упоминаете - добавление даты в 70-й столбец:

  • 6 9 я пробел Esc $

    Это создаст 69 пробелов, и курсор будет на 69-м столбце;

  • :r !date ввод

    Это скопирует вывод команды date в буфер редактирования (на следующей строке);

  • Backspace J

После этого шага у вас есть дата, начиная с 70-го столбца.

Возможно, есть более простой способ, но, по крайней мере, этот работает наверняка.

1

Не самый красивый способ сделать это, но вы можете изменить shiftwidth , которая является размером одной вкладки. В командном режиме введите :set shiftwidth=1 затем введите то, что вы хотите в столбце 70, затем используйте команду: V (прописные буквы ´v´), чтобы выделить текущую строку, а затем введите 7 0 >. Это должно вкладывать ваш текст более 70 столбцов.

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

0

Другой способ может состоять в том, чтобы установить tabstop 70 и установить expandtab для расширения вкладок до пробелов:

:se ts=70
:se et

И тогда вы можете нажать клавишу табуляции, чтобы добраться до 70-го столбца.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .