Выполните текущую строку в ударе от энергии

Этот вопрос подобен Vim: выполнить текущий файл? но вместо того, чтобы выполнить текущий файл я хочу выполнить только текущую строку.

Действительно ли это возможно?

Обновление: Идеально, я ищу решения, которые могут иметь побочные эффекты во внешней оболочке. Например, предположите, что у меня есть следующая строка:

alias foo=bar

После выполнения команды в энергии, если я запускаю оболочку с :sh, псевдоним foo доступно, но если я вышел vim использование :q, затем псевдоним больше не доступен.

58
задан 23 May 2017 в 15:02

3 ответа

Добавьте это отображение на свой .vimrc файл,

nmap <leader>E yyp:.!csh<CR>

Объяснение:

  1. yy янки текущая строка
  2. p Вставка дергала строку ниже (и курсор переходит к этой следующей строке)
  3. :.!csh<CR>, Выполняют (использование csh) эту недавно вставляемую строку на месте. Вывод этой строки заменяет эту текущую строку, таким образом прежде, чем выполнить строку дергалось и вставлялось ниже.
1
ответ дан 1 November 2019 в 13:30

Если у меня есть команда на строке текста в vi/vim как это"

, расположите ls - la

курсор где угодно на строку и сделайте ":.!!" и нажмите возврат.

, Который является: точка двоеточия ударяет по возврату удара

, Который выполнит текст в той строке в текущей оболочке из vi/vim и вставлять вывод в текстовом файле.

я думаю, именно это Вы спрашивали? это похоже на волшебство.

0
ответ дан 1 November 2019 в 13:30

Полагайте, что следующая команда работает на терминале,

seq 0 10 | xargs printf "%02x "

, Ожидаемый вывод,

00 01 02 03 04 05 06 07 08 09 0a

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

nmap <leader>E :exec 'r!'.getline('.')<CR>

Примечание, что, для выполнения вышеупомянутой строки необходимо записать, что она с добавляющим символом Escape для' %' следующим образом,

seq 0 10 | xargs printf "\%02x "

Идет эта строка в файле и нажимает <leader>E. В моем случае, <leader> отображается на , следовательно, я нажму ,E

0
ответ дан 1 November 2019 в 13:30

Другие вопросы по тегам:

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