私は 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 行目は同じことを行いますが、最初に挿入モードを終了します。