6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

neovim + neoterm

Last updated at Posted at 2017-12-30

Vimでコードのテストをしながら書きたい。一行ずつ書きたい。間違ってたら一行だけ戻って再実行したい。この目的のためにnvim-Rを使ってきたが、Rだけじゃなくてshell-scriptやpythonをテストしながら書きたいんだ!もちろんVimで!

neovimに搭載されたterminal emulatorに編集中のソースを投げてくれるneotermというプラグインを使えば簡単に実現出来ます。neotermが対応している対話環境が提供されていれば拡張子に応じて自動的に対話環境も立ち上げてくれる。


neovim.gif

  1. neovimをインストールする。
  2. neotermをインストールする。deinを使った
  3. nvimの設定ファイルに以下を記載(~/.config/nvim/init.vim等)
init.vimに記載
let g:neoterm_autoscroll=1 #REPLを自動的に改行
tnoremap <silent> <ESC> <C-\><C-n><C-w> #ESCでターミナルモードを抜けるため
nnoremap <silent> <C-R> V:TREPLSendLine<cr> #ノーマルモードで現在のカーソル行を実行
vnoremap <silent> <C-R> V:TREPLSendSelection<cr>'>j$ #ヴィジュアルモードで選択範囲を実行

あとは拡張子付きのファイルを開いてコードを書いて、ctrl-rで適当な対話環境が立ちあがり実行されます(.r, .sh, .py etc)。キーバインドは上記の通り、
・ノーマルモードでctrl-rで現在の行を実行
・visual modeで範囲選択したうえでctrl-rで選択範囲を実行
・(デフォルト)ノーマルモードでctrl-w + hjklでペイン間の移動
としています。サーバへの導入も簡単でssh越しでも問題なく使えるので大変便利です。

2018年2月末追記

ctrl-rはRedoだったため一行スクロールのctrl-eを潰すことにしました。executeと覚えよう。また、実行後に次の行に遷移できるように少し変更。縦分割に。

let g:neoterm_autoscroll=1
let g:neoterm_position='vertical'
tnoremap <silent> <ESC> <C-\><C-n><C-w>
nnoremap <silent> <C-e> :TREPLSendLine<CR>j0
vnoremap <silent> <C-e> V:TREPLSendSelection<CR>'>j0
6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?