VimでPythonコードを実行する 質問する

VimでPythonコードを実行する 質問する

私は Vim を使用して Python コードを書いていますが、コードを実行するたびに、Vim 内で次のように入力します。

:w !python

これはイライラするので、Vim 内で Python コードを実行するより速い方法を探していました。ターミナルから Python スクリプトを実行するとかでしょうか? 私は Linux を使用しています。

ベストアンサー1

autocmdファイルに を追加して~/.vimrcマッピングを作成してはいかがでしょうか。

autocmd FileType python map <buffer> <F9> :w<CR>:exec '!python3' shellescape(@%, 1)<CR>
autocmd FileType python imap <buffer> <F9> <esc>:w<CR>:exec '!python3' shellescape(@%, 1)<CR>

を押すと<F9>現在のバッファを実行できますpython

説明:

  • autocmd: Vim が自動的に実行するコマンド{event}(ここでは、Python ファイルを開いた場合)
  • [i]map<F9>:挿入/通常モードでのキーボードショートカットを作成します
  • <buffer>: 複数のバッファ/ファイルが開いている場合: アクティブなものだけを使用する
  • <esc>: 挿入モードを終了
  • :w<CR>: ファイルを保存します
  • !: シェルで次のコマンドを実行します (試してください:!ls)
  • %: はアクティブなバッファのファイル名に置き換えられます。しかし空白やその他の「不適切な」ものが含まれる可能性があるため、:python %と書くのではなく、次のように書く方がよいでしょう。
  • shellescape: 特殊文字をエスケープします。1バックスラッシュを使用する意味

TL;DR: 最初の行は通常モードで動作し、押すと<F9>最初にファイルを保存し、次にファイルを Python で実行します。2 行目は同じことを行いますが、最初に挿入モードを終了します。

おすすめ記事