DEV Community

kaede
kaede

Posted on • Updated on

Vim 基礎 Part 02 -- .vimrc のみで表示、入力を最適化する

表示系

https://www.freecodecamp.org/news/vimrc-configuration-guide-customize-your-vim-editor/

freecodecamp を参考に、一行一行何をしているのか咀嚼しながら追加する。

プラグインは入れないことにする。

コメントは "


syntax on で vim で開いたファイルに色をつける🌈

syntax 記述なし

Image description

通常は vim で開いたテキストは真っ白。

syntax on

Image description

だが、この設定を入れるとコードに応じて色がつく。
かなり見やすくなる。

vim 9 では最初から入っている

Image description

shell script にも対応している


set number

デフォルトは OFF

Image description

set nonumber で通常どうり、内部のテキストだけが表示され

Image description

set number で行の左に数字が表示されるようになる

VSCode と違って、選択してコピーする際に入ってしまうのが難点。

:set nonumber を編集中に打つことでも一時的に解除できる


set cursorline

Image description

何行目を編集しているかわかりやすくなる


set incsearch

Image description

検索フォームに入力中に、エディタ内部のその文字列がハイライトされるようになる。


set hlsearch

Image description

検索した後の単語がハイライトされる

しかし検索を終えてもハイライトは消えなくて邪魔なので

:noh と打って消すことになる。

https://stackoverflow.com/q/3691247

nnoremap <ESC> :nohlsearch<CR> 
Enter fullscreen mode Exit fullscreen mode

なお、これで esc 二連打で noh を簡単に打てる。


白いステータスラインバーの左からファイルのステータスを表示する

set laststatus=2
set statusline+=\ %F\ %M\ %Y\ %R 
Enter fullscreen mode Exit fullscreen mode

ステータスラインを出すために :wq を書くところを下に固定
下部の白いステータスラインに F, M, Y, R のものを
左側から追加していく

Image description

F がファイルのフルパス
M が Modifled Flag なので、変更されて保存されてない時は + が出る。
Y がなんの拡張子で読み込まれているか
R が Read Only Flag なので、書けないファイルでは表示される。


白いステータスラインバーの右からファイルのステータスを表示する

Image description

set statusline+=%=
set statusline+=\ line:\ %l\ from_the_left:\ %c\ percent:\ %p%%
Enter fullscreen mode Exit fullscreen mode

ステータスバーを右寄せにして
L の行数、C の左からの文字数、P のあと何行残っているか
これらを表示する



入力系

jj で insert から escape する

https://medium.com/diegodev/vim-tip-remapping-jj-to-escape-8efc4ad8a6bf

imap jj <Esc>
Enter fullscreen mode Exit fullscreen mode

imap で簡単にキーマップを変えることができる。
これで作業が格段に早くなる。


set showcmd

Image description

打っている途中のコマンドが下に表示される
vimmer のイベントで これを

https://atmarkit.itmedia.co.jp/ait/articles/1902/12/news024.html

この Windows のあ/A の切り替えのときのように
画面中央に大きく表示させている人がいた

なのでいつかやってみたい。


Top comments (0)