vi управляют для добавления пустой строки?

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

Ваш лучший выбор является авторезервным копированием, созданным Вашим редактором - если он существует. В противном случае я попробовал бы следующий прием с помощью grep, если Вы помните некоторую уникальную строку в своем .tex файле:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

Замена /dev/sda1 с устройством, что файл шел и замена 'string' с уникальной строкой в Вашем файле. Это могло занять время. Но в основном, то, что это делает, является этим, ищет строку на устройстве и затем возвращает 100 строк прежде и после той строки и вставляет его file.txt. Если Вам нужно больше строк, возвращенных, просто корректируются -B и -A опции как соответствующие. Вы могли бы получить набор дополнительного возвращенного мусора, но необходимо смочь вернуть текст.

Удачи.

24
10.06.2011, 12:37
8 ответов

Согласно FAQ VIM можно использовать :put команда:

12.15. Как я вставляю пустую строку выше/ниже текущей строки, не вводя режим вставки?

Можно использовать ": помещенный" исключая командой для вставки пустых строк. Например, попробовать

:put = ''
:put! = ''

Для получения дополнительной информации читать

:help: поместить

но затем действительно легче добавить:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

к Вашему .vimrc. Таким образом, можно нажать Enter или Shift-Enter в normal mode вставить пустую строку ниже или выше текущей строки. Конечно, замена <Enter> и <S-Enter> с Вашими предпочтительными ключами.

25
27.01.2020, 19:41

Часть очарования использования VI имеет командный режим для управления текстом и режимом редактирования для добавления текста. Это мешает Вам иметь для удара CTRL-whatever для выполнения вещей.

Другие предложения могут работать - я не судил их - но они, кажется, требуют довольно многих символов или управления Вашим VI среда слишком много.

Попытайтесь использовать o[ESC] сопровождаемый a . для каждой новой строки Вы хотите добавить, или 5. добавить 5 строк. Это намного быстрее, и будет всегда работать над любой установкой VI.

15
27.01.2020, 19:41
  • 1
    Можно использовать . для повторения но можно также сделать <number>o<esc>, пример: 5o<esc> –  bollovan 11.07.2011, 21:42
  • 2
    Это, конечно, работало бы. Но мне нравится видеть, как команда на самом деле повлияет на документ, прежде чем у меня будет он, делают это многократно. Я не могу сказать Вам, сколько раз я имею o'd добавьте новый абзац в VI, только чтобы узнать, что симпатичный абзац равнялся на самом деле шести тщательно broken/word-wrapped строки. –  Glorytoad 06.09.2011, 22:48

В энергии, существует также :normal o или :normal O.

2
27.01.2020, 19:41

На Vim 7.3: <number>o<esc> создает только одну пустую строку.

0
27.01.2020, 19:41
  • 1
    Ну, путем добавления <esc> Вы идете снова от режима вставки до командного режима. Я думаю, что он ищет ответ, которые не переходят к режиму вставки вообще. –  Bernhard 07.04.2013, 22:40
  • 2
    О! Я забываю выходить из режима вставки с <esc>. В этом случае это будет работать. Это даже копирует строку, отредактированную на всех следующих строках. –  Hakim 09.04.2013, 11:11

И unimpaired.vim Папы Римского Tim - Пары удобных отображений скобки и моего собственного LineJuggler - Дубликат и перемещают предложение плагина строк, удобное короткий ]<Space> отображения для этого.

0
27.01.2020, 19:41

Me sorprende que nadie más haya mencionado esto:

Use 'r' seguido de 'Tecla Enter' en el modo de línea de comando.

Sin embargo, llegó tarde a la fiesta por 7 años:)

-2
27.01.2020, 19:41

Para insertar una línea en blanco después de la línea actual mientras permanece en el modo de comando, use:

: r !echo

Este es el comando "rleer en un archivo", pero en lugar de darle un nombre de archivo, le decimos que lea la salida de un comando de shell(!); ese comando de shell, echo, simplemente imprime una línea en blanco. Después de insertar la línea en blanco, permanecerá en el modo de comando.

2
27.01.2020, 19:41

Чтобы вставить пустую строку ниже текущей строки, используйте :putили :put!, чтобы вставить строку выше.

Чтобы указать место для вставки пустой строки(n й строки )используйте :[n]put.

e.g.1 :Добавить пустую строку под строкой номер 23 в командном режиме.

:23put

e.g.2 :Добавить 5 пустых строк над строкой номер 23 в командном режиме.

:23put! =repeat(\"\n\",5)

Примечания и предупреждения:

  • Для вывода одной пустой строки вам не нужно использовать функцию =, если только в безымянном регистре "не хранится значение, и в этом случае вы должны использовать :put ='', который содержит две одинарные кавычки. как выражение.

  • Чтобы очистить безымянный регистр ", введите :let @"=''.

  • Проверьте содержимое регистров Vim с помощью :disили :registers.

  • :pu— эквивалентная команда быстрого доступа.

  • Введите :help putили :help registersдля получения дополнительной информации по этой теме.

  • В моем тестировании использовался Vim версии 7.2.

  • В ответе @Mr Shunz есть оговорка. Если вы используете двойные кавычки в качестве выражения, например :put =", то будет использоваться предыдущее выражение. Например.когда вы вводите :put =testи :put ="последовательно, вывод под текущей строкой будет:

    test    
    test
    
  • Этот ответ является улучшением по сравнению с ответом @Mr Shunz и @justerman, первый опускает некоторые важные оговорки; а последний имеет двусмысленную инструкцию о том, как указать точку вставки:«... указать строку в начале» .

  • Ответы @Steven Pritchard и @Jeff Schaller с использованием :normal oи :r !echoсоответственно являются хорошей альтернативой.

  • Использование сценария, предложенного @Ingo Karkat, является излишним.

  • @Glorytoad и @Hakim используют o[Esc], который переводит Vi в режим редактирования.

1
27.10.2020, 05:49

Теги

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