Closed iranoan closed 1 year ago
ご存じだと思いますが、ターミナルモードは Terminal-Jobモードと Terminal-Normalモードの2つあります。
:terminal
を実行した直後はTerminal-Jobモードです。キーはjobに送られます。
Terminal-Jobモードで<C-W>N
すると、Terminal-Normalモードに移行します。(mode(1)はnt
)
Terminal-Normalモードで a
等を入力すると、Terminal-Jobモードに移行します。(mode(1)はt
)
Terminal-Jobモードで<C-W>:
するとmode(1)はt
を返しますね。
Terminal-Normalモードで:
するとmode(1)はc
を返しますね。
Terminal-Jobモードで<C-W>:
した時はmode(1)はct
を返すようにした方がいいのでしょうかね?
Terminal-Jobモードで
:した時はmode(1)は ct
を返すようにした方がいいのでしょうかね?
でもそうなると、mode()は c
を返すようにしないといけなくなりますね。
Terminal-Normalモードで確認していませんでした
でもそうなると、mode()は
c
を返すようにしないといけなくなりますね。
やれることの基本はコマンドラインモードなので、それが自然に感じるのですが、既存のプラグインのことお考えると良くないのかな?
mode(1)の時 tc
を返すなら、影響も少ないのかな?
testコードを見てみたんですが、terminal-*中のコマンドライン中のテストはしていないようです。 あろ、本家のIssueを検索したけど関連するものは見つからなかったです。
なので誰もこのシチュエーションでmode()を使っていないのでは?
と言うことで、
Terminal-Jobモードで<C-W>:
した時、
という変更を提案するのはアリだと思います。
@iranoan さんが本家にIssue建ててみます?
修正されたので閉じます h-eastさん、本家でもフォローしていただき有難うございました
質問の内容
同じコマンドラインモードでも通常のウィンドウからとターミナルウィンドウからの移動で、mode(1) の返り値が変わります これは仕様なのでしょうか?
具体的な再現方法としては、
などで適当なキーにマップすると、通常のウィンドウからの時は 'c' に、ターミナルウィンドウからの時は 't' に成ります
Vimのバージョン
OSの種類/ディストリ/バージョン