Есть ли лучший способ сделать это в VIM

Мне нравится завершение командной строки, которое позволяет мне быстро получить полный путь. Поэтому я использую:!Ls и вкладка, чтобы быстро получить путь, который я ищу.

:!ls /usr /share /doc /
стрелка вверх получить его снова в командной строке, получая доступ к истории командной строки.
:!ls /usr /share /doc /
Затем я редактирую это так
:р! echo "/usr /share /doc /"

Потому что я хочу поместить путь в файл, а не содержимое каталога. В основном это быстрый способ поместить содержимое истории командной строки в файл.

2 ответа2

3

(удалил мой глупый ответ, потому что я не читал вопрос)

Хм, я должен читать вопросы более внимательно.

Omni-Complete от Vim дает вам завершение пути.

Начать с

/usr

затем нажмите <C-x><C-f> чтобы получить список каталогов / файлов.

Он работает только для одного уровня, поэтому вам нужно будет повторять процесс, пока не получите то, что вам нужно.

Поскольку <C-x><C-f> не очень дружелюбен, я сопоставил его с ,:

Смотрите :help compl-filename .

--EDIT--

В Vim выполняем следующее:

:!ls<CR><CR>
:r !echo !<CR>

помещает ls в буфер, который, кажется, то, что вы ищете.

В терминале введите это, чтобы поместить всю историю сеанса оболочки в файл:

$ history > history.txt
0

http://vim.wikia.com/wiki/Using_command-line_history

Также в VIM стоит прочитать следующее.

:help cmdline-mode

Обычно для вставки последней выполненной команды вы получаете доступ к регистру команд ":".

":п

Чтобы получить список последних команд, которые вы выполнили. Затем вы можете выбрать из истории, чтобы повторить команду.

д:

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