Создание горячих клавиш VIM

Я довольно новичок в VIM и linux в целом. Поэтому делать это самостоятельно-это уже далеко за пределами моего уровня. Я знаком с файлом vimrc, но это все...

допустим, у меня один терминал открыт на холостом ходу. Затем я открываю другой терминал и редактирую python (.py) файл с vim. Как я могу создать постоянную горячую клавишу (например, f1), которая будет работать во всех режимах VIM, которая сохранит файл python и выполнит его в другом окне терминала?

28
задан appleLover
11.04.2023 20:59 Количество просмотров материала 2585
Распечатать страницу

2 ответа

выполнить команду в другом терминале можно, но это далеко не тривиально.

во-первых, у вас открыто более одного эмулятора терминала. Эти эмуляторы терминалов работают под управлением оболочки, вероятно bash Если вы на Linux. С ps команда вы можете найти идентификаторы процессов (PID) всех оболочек, запущенных на вашей машине. Теперь большой вопрос: на какой из них отправить команду?

вы ищете оболочку, которая принадлежит терминалу вы хотите показать команду. Выполнение команды echo $$ на терминале, о котором идет речь, должен вернуть PID оболочки, запущенной на этом терминале. Используя /proc файловая система вы можете определить стандартный ввод оболочки /proc/<PID>/fd/0, который является pty устройства.

Далее вы хотите отправить команду на этот терминал. Это должно быть сделано с помощью TIOCSTI ioctl команда на pty оболочки. Вы можете найти исходный код C для этого здесь. Скомпилируйте эту программу как, например,ttyecho и поместите его в каталог в вашем $PATH.

сейчас на своем месте, и вы могли бы назвать ttyecho команда с именем pty оболочки и команда python <filename>.

выполнение всего этого в vimscript оставлено как упражнение для читателя. : -)

1
отвечен Roland Smith 2023-04-13 04:47

вы можете попробовать что-то вроде этого (тот же терминал):

map <F2>:w<CR>!C:\Python27\python.exe %<CR><CR>
-1
отвечен Ярослав Рахматуллин 2023-04-13 07:04

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх