vi・vim
概要
1976年、Bill JoyによってBSD Unix向けに作成されたラインエディタ。
viとvimの違いはビジュアル出力、利用できるオプションが異なる。
またLinuxディストリビューションによってvimがデフォルトの場合もある。
設定
HOME(≒マイドキュメント)配下に設定ファイルを作成または作成される。
| .vimrc |
vi/vimの表示設定、キーマップや拡張設定 |
| .viminfo |
コマンド、編集情報、検索情報、レジスタなどの 履歴情報を保存 |
補足・備考
本稿は
VIMバージョン:IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:43:18)を基としている。
下記はLinux(RHEL系、
Ubuntuの場合)でありWindows、
MacOSなど他のOSでは変わることが予想されるため事前確認が必要。
HOME配下に設置するため他ユーザに影響は及ばない。
vimrc
sample code
set t_u7=
set t_RV=
set fenc=utf-8
set nobackup
set noswapfile
set autoread
set hidden
set showcmd
set number
set cursorline
set cursorcolumn
set virtualedit=onemore
set smartindent
set visualbell
set showmatch
set laststatus=2
set wildmode=list:longest
nnoremap j gj
nnoremap k gk
syntax enable
set list listchars=tab:\▸\-
set expandtab
set tabstop=2
set shiftwidth=2
set ignorecase
set smartcase
set incsearch
set wrapscan
set hlsearch
nmap <Esc><Esc> :nohlsearch<CR><Esc>
備考:
set t_RV=とt_u7= の設定は必ず必要ではない。稀にvi/vim起動時に何らかのトラブルに見舞われて必要な情報がvi/vimに送られないのが原因。
基本的にこれらは配慮する必要は無い。自身の経験を言うと
vagrantで海外のboxイメージを落としてくるとこのトラブルに遭うことがある。
各設定コマンドの意味
| replace mode回避対策(起動時のカーソル、termap情報送信ミスが要因) |
set t_u7= set t_RV= |
| 入力中のコマンドをステータスに表示する |
set showcmd |
| 見た目系 |
|
| 行番号を表示 |
set number |
| 現在の行を強調表示 |
set cursorline |
| 現在の行を強調表示(縦) |
set cursorcolumn |
| 行末の1文字先までカーソルを移動できるように |
set virtualedit=onemore |
| インデントはスマートインデント |
set smartindent |
| ビープ音を可視化 |
set visualbell |
| 括弧入力時の対応する括弧を表示 |
set showmatch |
| ステータスラインを常に表示 |
set laststatus=2 |
| コマンドラインの補完 |
set wildmode=list:longest |
| 折り返し時に表示行単位での移動できるようにする |
nnoremap j gj |
| 折り返し時に表示行単位での移動できるようにする |
nnoremap k gk |
| シンタックスハイライトの有効化 |
syntax enable |
| Tab系 |
|
| 不可視文字を可視化(タブが「?-」と表示される) |
set list listchars=tab:\?\- |
| Tab文字を半角スペースにする |
set expandtab |
| 行頭以外のTab文字の表示幅(スペースいくつ分) |
set tabstop=2 |
| 行頭でのTab文字の表示幅 |
set shiftwidth=2 |
| 検索系 |
|
| 検索文字列が小文字の場合は大文字小文字を区別なく検索する |
set ignorecase |
| 検索文字列に大文字が含まれている場合は区別して検索する |
set smartcase |
| 検索文字列入力時に順次対象文字列にヒットさせる |
set incsearch |
| 検索時に最後まで行ったら最初に戻る |
set wrapscan |
| 検索語をハイライト表示 |
set hlsearch |
| ESC連打でハイライト解除 |
nmap <Esc><Esc> :nohlsearch<CR><Esc> |
viminfo
| viminfoファイルの出力先を変更 |
:set viminfo={他のフラグ...},n{ファイルパス} |
| viminfoファイルを作成しない |
:set viminfo= |
| viminfoに詳細情報を出力 |
:set viminfo=string |
|
|
| ファイル履歴一覧表示(履歴リストを見るだけ) |
:oldfiles |
| 履歴ファイルを開く |
:e #<[number] |
| ファイル履歴リストを表示、リスト番号入力でファイルを開く |
browse oldfiles |
| 他の Vim に情報を移動 |
:wviminfo! ~/tmp/viminfo |
| 編集セッションを保存 |
:mksession vimbook.vim |
| セッションを復元 |
:source vimbook.vim |
| Vim の起動と同時にセッションを再開 |
vim -S vimbook.vim |
| Vim ウィンドウの大きさも復元 |
:set sessionoptions+=resize |
| すべてのファイルを保存 |
:wall |
| 現在のセッションを保存 |
:mksession! [例)~/.vim/savename.vim ] |
| セッションをリロード |
:source ~/.vim/boring.vim |
| 同じレイアウトで Vim を起動 |
vim -S ~/.vim/mine.vim |
| Windows と Unix を両方使う場合のセッション |
:set sessionoptions+=unix,slash |
| マークやレジスタ、コマンドライン履歴などは保存 |
:mksession! ~/.vim/secret.vim |
| 他のセッションに切り換えてもコマンドライン履歴を保存 |
:wviminfo! ~/.vim/secret.viminfo |
| 他のセッションを復元 |
:source ~/.vim/secret.vim |
| 他のセッションを復元 |
:rviminfo! ~/.vim/secret.viminfo |
| モードライン無効(root,admin権限利用時。セキュリティが緩くなる) |
:set nomodeline |
最終更新:2021年05月29日 17:44