回答:
vim
ます!)xdotool
またはを試してくださいtriggerhappy
。最後に、Caps Lock状態を表示します(Vimscriptでは実行できません)...
xev -q
、cat /proc/bus/input/devices
クエリにデバイスを見つけ、evtest
またはthd ... --dump /dev/input/event<#>
など、状態を確認するために、あなたは絶対にシステム全体の再マッピングをしなければならない場合は、少なくともスワップキャップのような2つのロック< - > NUM -しかし、問題はそれがオンであることをもっと忘れています。以前にそれが欲しかったのなら、どんなマップでもそれを使い続けるからです。ファイル/ユーザー/システムの前にVimを壊す危険があります。
confirm()
。また、Caps Lockをctrlにマッピングする代わりに、Vimによって理解されているがマッピングされていないキーまたは組み合わせにマッピングし、手動で、またはgithub.com/tpope/のようなものを使用して、挿入/置換モードでのみCaps Lockをエミュレートできます。vim-capslock。あなたは、おそらく外のVimそれを必要とするが、あなたがしなければ、あなたの変更を元に戻す、または、独自のプログラムサポートのマッピングかどうかを確認するためにxmodmapをスクリプトを書きません(とメイクノート。)
さらに:
Ctrl- yとCtrl- eカーソルが画面の外に移動した場合にのみ、カーソルの位置を変更します。
:help CTRL-E
言うMnemonic: Extra lines.
Vimはカーソルが常に現在の画面にあることを要求しますが、現在の位置をブックマークにブックマークしてから、元の場所に戻ることができます。
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
Ctrl-O
本当に素晴らしいものには "バックティック、ピリオド"を使用すると、最後に編集していた場所に戻ります。
mg
でマークし、スクロールして移動し、マークを付けて移動'g
します。これで完了です。これで、構成可能なキーを呼び出して移動することができ、カーソルが現在の位置から離れたことがないように感じます。Voilá!
これがvimrcの私の解決策です:
"keep cursor in the middle all the time :)
nnoremap k kzz
nnoremap j jzz
nnoremap p pzz
nnoremap P Pzz
nnoremap G Gzz
nnoremap x xzz
inoremap <ESC> <ESC>zz
nnoremap <ENTER> <ENTER>zz
inoremap <ENTER> <ENTER><ESC>zzi
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
カーソルが画面の中央に留まり、画面が上下に移動するようにします。
あなたが使用するときに同じ列にカーソルを残すためにCtrl+ D、Ctrl+ F、Ctrl+ B、Ctrl+ U、G、H、M、L、gg
次のオプションを定義する必要があります。
:set nostartofline
Scrolloff
カーソルをページの中央に保つオプションを誰も使用していないことに驚いています。試してみてください:
:set so=999
これはVim wikiで最初に推奨される方法であり、うまく機能します。
:set scrolloff=4
、カーソルは常にウィンドウの上部または下部から少なくとも4行離れている必要があるため、常に少なくとも少しのコンテキストがあります。
「カーソルを基準にしたVimのスクロール、カスタムマッピング」に対する回答が役立つ場合があります。
ScrollToPercent(0)
その質問からこれを行うことができます。
キーを使用してテキストをスクロールすると便利な場合がKありJます。そのため、.vimrcにこの「スクロールモード」関数を用意しています(これもにバインドされていますzs)。
scroll_mode.vimを参照してください。
スクロールのニーモニック...
他の回答に追加することも、ze
とzs
に注意してください。つまり、画面をカーソルの左/右に移動します(カーソルを移動せずに)
+-------------------------------+
^ |
|c-e (keep cursor) |
|H(igh) zt (top) |
| ^ |
| ze | zs |
|M(iddle) zh/zH <--zz--> zl/zL |
| | |
| v |
|L(ow) zb (bottom) |
|c-y (keep cursor) |
v |
+-------------------------------+
また、キーボード上のand h
およびl
and t
およびb
and(qwertzキーボードを使用)c-e
およびc-y
(「y」は何とか下を指します)の位置も確認して、画面がどこに移動しているかを覚えます。
vimを入力して次のように入力します。
:help z
zは、再描画用のvimコマンドなので、カーソルを置いた位置を基準にしてファイルを再描画します。次のオプションがあります。
z+- ウィンドウの上部にカーソルを置き、行の最初の非空白文字でファイルを再描画します。
z-- ウィンドウの下部にカーソルを置き、行の最初の非空白文字でファイルを再描画します。
z.- ウィンドウの中央にカーソルを置き、行の最初の非空白文字でファイルを再描画します。
zt- ウィンドウの上部にカーソルを置いてファイルを再描画します。
zb- ウィンドウの下部にカーソルを置いてファイルを再描画します。
zz- ウィンドウの中央にカーソルを置いてファイルを再描画します。