1

У меня есть следующая конфигурация в моем файле .vimrc для переключения между файлом .c и соответствующим ему файлом .h

function SwitchHeader()
    w
    if(&ft=='cpp')
        e %:r.c
    elseif(&ft=='c')
        e%:r.h
    endif
endfunction

Когда я ввожу :call SwitchHeader() в командной строке vim. Появляется сообщение Bestätigen sie die EINGABETASTE oder geben sie einen Befehl ein которое я перевёл бы, чтобы Hit the enter key or enter a command

Как мне избежать необходимости нажимать клавишу ВВОД каждый раз, когда я вызываю функцию, когда я связываю клавишу, я могу использовать <cr> в конце строки, чтобы вставить Enter, но как это сделать в функции.

3 ответа3

1

Для всех, у кого была такая же проблема: я нашел этот плагин vim http://www.vim.org/scripts/script.php?script_id=31, который, кажется, имеет больше опций, таких как разделение панели и так далее. Я не пробовал, но вы можете попробовать.

0

В «быстрых и грязных» сценариях решение часто заключается в том, чтобы вставить буквенный символ в файл. В этом случае вы должны ввести control+v, а затем клавишу возврата, чтобы вставить символ, похожий на ^L но вы можете сказать, что это не знак пробела, потому что курсор перемещается по нему как один символ.

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

execute 'normal (...commands that might generate enter prompt...)^L'
0

использование

execute ':edit ' . expand('%:r') . '.EXT'

(Примечание: заменить .EXT на что хотите, чтобы оно было в каждой ветке)

Также: взгляните на http://www.vim.org/scripts/script.php?script_id=31

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