VIM: ссылка на текущий буфер в сопоставлениях ключей

#vim #keymapping

#vim #отображение клавиш

Вопрос:

Я хотел бы сопоставить определенное сопоставление ключей, чтобы интерпретатор Python запускал текущий отредактированный буфер в VIM.

Что я делаю сейчас (вручную):

 :!python <FILENAME>
  

Но я бы хотел, чтобы переменная на самом деле была переменной, чтобы сопоставление могло быть в my .vimrc и работать для любого файла, который я открываю в VIM.

Я также хотел бы знать, как связать несколько команд, чтобы вместо выполнения:

 :w
:!python <FILENAME>
  

Я мог бы сопоставить их оба с одной командой. Что-то вроде

 :w ; :!python <FILENAME>
  

РЕДАКТИРОВАТЬ: Спасибо за ответы. Окончательное решение заключалось в том, чтобы сделать:

 :cmap <KEY> :w<CR>:!python %<CR>
  

Ответ №1:

% в vim ссылается на текущее имя файла.

Вы можете выполнить сопоставление, подобное nnoremap <leader>r :!./%<CR> выполнению текущего скрипта, если установлена строка shebang.

Ответ №2:

Знак процента (%) будет заменен текущим именем файла

Для ключевого макроса:

  map yourkey :w^V^J!python %^V^J
  

где ^V — это Ctrl-V, а ^J — Ctrl-J (перевод строки)