Я начал использовать vim пару месяцев назад, и мне это нравится. В основном я кодирую на панели vim (используя iTerm2 в OS X), и я поддерживаю консоль ipython внутри сеанса экрана на другой панели. Мне удалось найти способ отправить строки кода или даже весь скрипт из vim для выполнения на консоли ipython, но я не знаю, возможно ли это с помощью tmux. Все остальные говорят мне перейти с экрана на tmux (что на самом деле кажется хорошим советом, в свете возможностей tmux), но прежде чем сделать прыжок, я хотел убедиться, что это возможно.
Могу ли я отправлять команды в уже открытый сеанс tmux?
Ответы (2)
Да, можно отправлять команды в уже открытый сеанс tmux. я рекомендую вам использовать этот плагин vim-tmux-runner . вы можете посмотреть это Vim & Tmux видео с демонстрацией подключаемого модуля Джека Франклина.
Основываясь на ответе/совете byaruhaf, мне удалось отправить команды в уже открытый сеанс tmux. Я подумал, что добавлю сюда небольшое руководство, чтобы все остальные могли воспользоваться этим.
Я установил vim-tmux-runner и отредактировал файл .vimrc следующим образом:
let g:vtr_filteype_runner_overrides = {
\ 'python': '%run {file}' }
augroup Pythonic
autocmd!
autocmd FileType python nmap <leader>l :VtrSendFile<CR>
autocmd Filetype python xmap <leader>l :VtrSendLinesToRunner<CR>
augroup END
Позвольте мне немного объяснить это. Первая строка autocmd
позволяет нажать <leader>l
в НОРМАЛЬНОМ режиме и заставить vim-tmux-runner отправить '%run {filename}'
в сеанс tmux, в котором запущен сеанс ipython (это мой рабочий процесс). Обратите внимание, что строка 'let'
вверху — это та, которая устанавливает команду, которую должен запускать VtrSendFile
, как '%run'
. (В этой же строке обратите внимание, что "филтейп" - это не опечатка, он работает так, а не с "типом файла").
Вторая строка autocmd
позволяет выбрать несколько строк в vim и, находясь в ВИЗУАЛЬНОМ РЕЖИМЕ, нажать <leader>l
и отправить эти строки в сеанс tmux ipython. Поскольку вставка кода в ipython может быть сложной, есть и другие варианты, которые могут быть полезны в этом случае, просто проверьте документацию на vim-tmux-runner для получения дополнительной информации.
Спасибо byaruhaf за отличный совет.