Vimで、コマンドラインモードで、ユーザが入力中の値が取りたい
cnoremap <c-a> <c-b>"<cr>:let @l=@:<cr>:call Increment(1)<cr>:<c-r>l function Increment(plus) let inputting = @l " 中略 " 中略 " 中略 let @l = "新しい入力値" call histdel(':', -1) endfunction
とりあえず入力中のコマンドを実行させてしまって、
コマンドの履歴から、入力中のテキストを拾えば良いよ。
でも、本当にコマンドが実行されると困るから、
頭に「"」入れて、コメントアウトで無効にしておくよ。
コマンドを実行させた分、余計なコマンド履歴が入っちゃうから、
最後に消しておくと良いよ。
はじめに思いついた人、頭良いな!!
ちょっと感動した。
この方法、かなり昔からあるんだよね。
この方法以外に、CmdwinLeaveイベントを無理矢理起こさせて、
拾う方法もあるみたいだが、、