Я советовал бы против непосредственной установки некоторой утилиты. В основном Ваш крупнейший враг здесь является записями на диск. Вы хотите избежать их любой ценой прямо сейчас.
Ваш лучший выбор является авторезервным копированием, созданным Вашим редактором - если он существует. В противном случае я попробовал бы следующий прием с помощью grep, если Вы помните некоторую уникальную строку в своем .tex файле:
$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt
Замена /dev/sda1
с устройством, что файл шел и замена 'string'
с уникальной строкой в Вашем файле. Это могло занять время. Но в основном, то, что это делает, является этим, ищет строку на устройстве и затем возвращает 100 строк прежде и после той строки и вставляет его file.txt
. Если Вам нужно больше строк, возвращенных, просто корректируются -B
и -A
опции как соответствующие. Вы могли бы получить набор дополнительного возвращенного мусора, но необходимо смочь вернуть текст.
Удачи.
Согласно 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>
с Вашими предпочтительными ключами.
Часть очарования использования VI
имеет командный режим для управления текстом и режимом редактирования для добавления текста. Это мешает Вам иметь для удара CTRL-whatever для выполнения вещей.
Другие предложения могут работать - я не судил их - но они, кажется, требуют довольно многих символов или управления Вашим VI
среда слишком много.
Попытайтесь использовать o[ESC]
сопровождаемый a .
для каждой новой строки Вы хотите добавить, или 5.
добавить 5 строк. Это намного быстрее, и будет всегда работать над любой установкой VI
.
.
для повторения но можно также сделать <number>o<esc>
, пример: 5o<esc>
– bollovan
11.07.2011, 21:42
o'd
добавьте новый абзац в VI, только чтобы узнать, что симпатичный абзац равнялся на самом деле шести тщательно broken/word-wrapped строки.
– Glorytoad
06.09.2011, 22:48
<esc>
Вы идете снова от режима вставки до командного режима. Я думаю, что он ищет ответ, которые не переходят к режиму вставки вообще.
– Bernhard
07.04.2013, 22:40
И unimpaired.vim Папы Римского Tim - Пары удобных отображений скобки и моего собственного LineJuggler - Дубликат и перемещают предложение плагина строк, удобное короткий ]<Space>
отображения для этого.
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:)
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 "r
leer 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.
Чтобы вставить пустую строку ниже текущей строки, используйте :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 в режим редактирования.