Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimのマイナーだけどおすすめな設定

$
0
0

「vimrc おすすめ」などで検索してもあまりヒットしないけど、個人的に便利な設定をまとめました。参考になれば嬉しいです。

プラグインについては触れません(また別の記事に書こうと思っています)。

Options

mapleader

letg:mapleader="\<Space>"

<Leader>にはスペースキーを設定しています。一番押しやすい位置だと思うので、よく使うコマンドを登録するのにうってつけです。

clipboard

set clipboard=unnamed

無名レジスタとクリップボードを共有します。これはメジャーですね。

termguicolors

set termguicolors

True Color(24bit)表示に対応します。使っているターミナルアプリがTrue Colorに対応している必要があります(macOS標準のターミナル.appは対応していません。iTermやHyperは対応しています)。

noshowmode

set noshowmode

左下の「-- Insert --」のような表示をオフにします。vim-airlinelightline.vimでステータスラインを設定している人に有効です。

noshowcmd

set noshowcmd

右下にy$ddなどの入力中のコマンドが表示されないようにします。鬱陶しいと思っていた人はぜひ。

textwidth

set textwidth=0

勝手に改行されるのを防ぎます。

breakindent

set breakindent

wrapで折り返された行を、同じインデントで表示します。nowrapを設定している人には必要ないですね。

matchpairs

Vimでは括弧にカーソルをあわせると対応する括弧をハイライトしてくれますが、標準では対応していない括弧もハイライトできるようにします。

set matchpairs+=<:>,:,:,:,:,:,:,:,:,:

spelllang

set spelllang+=cjk

Vimでset spellをすると、日本語がスペルミス扱いされて残念なことになるのですが、それを回避できるオプションです。

signcolumn

set signcolumn=yes

alevim-gitgutterを使っていると行番号の左側がガタガタしてアレなんですが、これを設定するとおとなしくなります。

splitbelowsplitright

set splitbelow
set splitright

splitvsplitを実行したときに画面のどちら側に新規ペインを開くかどうかを設定できます。

splitbelowで新規ペインを下に、splitrightで新規ペインを右に作成するようにしています。好みの分かれる設定だと思うので、あくまで参考までに。

lazyredrawttyfast

set lazyredraw
set ttyfast

描画速度が速くなります。

inccommand(Neovimのみ)

if has('nvim')set inccommand=split
endif

Neovimにのみ用意されているオプションです(そのため、has('nvim')でNeovimの場合のみ実行するようにしています)。

:%s/.../...などで置換するときに、置換後の文字列をインクリメンタルに表示してくれます。文字だと説明しづらいので、↓の動画を見ると分かりやすいです。

Neovim: incremental substitution ('inccommand') - YouTube

Keymappings

nnoremap <silent><ESC><ESC>:set nopaste \|nohlsearch<CR>
nnoremap Y y$

キーマップはあまり設定していなくて、上記の2つだけです。


nnoremap <silent><ESC><ESC>:set nopaste \|nohlsearch<CR>

ノーマルモードで<ESC>を入力したときに、検索結果のハイライトとペーストモードを解除します。

<silent>を設定しているのは、実行時に:set nopaste | nohlsearchが表示されるのを防ぐためです。


nnoremap Y y$

DCは現在位置から行末までのモーションになっていますが、Yだけはyyと同じ動作になっていて一貫性がありません(歴史的な事情とのことです)。

y$と2文字の打つのは辛いので、Yにマッピングしています。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>