サーチ…
vimrcファイル
.vimrc
ファイル(Vim-wreckと発音)はVim設定ファイルです。 Vimが起動するたびに実行されるコマンドを保持します。
デフォルトでは、ファイルは空または存在しません。これを使ってVim環境をカスタマイズすることができます。
Vimがvimrcファイルを保存する場所を探すには、Vimを開いて次のコマンドを実行します。
:echo $MYVIMRC
Unix: MacやLinuxなどのUnixシステムでは、vimrcは.vimrc
と呼ばれ、通常はホームディレクトリ( $HOME/.vimrc
)にあります。
Windows: Windowsでは_vimrc
と呼ばれ、ホームディレクトリ( %HOMEPATH%/_vimrc
)にあります。
起動時に、Vimは複数の場所でvimrcファイルを検索します。存在する最初のものが使用され、残りのものは無視されます。完全なリファレンスは:h $MYVIMRC
ドキュメントの記事を参照してください。
どのオプションを使用できますか?
どのオプションを使うべきかわからない場合は、 :options
コマンドに興味があり:options
。
これにより、すべてのVimオプションがリストされ、現在の値が表示された分割が開きます。試すことができるすべてのオプションを表示する26のセクションがあります。
例えば
4 displaying text
scroll number of lines to scroll for CTRL-U and CTRL-D
(local to window)
set scr=20
scrolloff number of screen lines to show around the cursor
set so=5
wrap long lines wrap
set nowrap wrap
...
値の行( set nowrap
)では、 CRを押して値をトグルすることができます(バイナリ値の場合)。オプション行(例: wrap long line wrap
)では、 CRを押してこのオプションのドキュメントにアクセスできます。
ファイルとディレクトリ
Vimをカスタマイズするために何をしても、 $HOME
外では決して起こるべきではありません:
- Linux、BSD、Cygwinでは
$HOME
は通常/home/username/
、 - Mac OS Xでは、
$HOME
は/Users/username/
。 - Windowsでは、
$HOME
は通常C:\Users\username\
です。
vimrc
とvim
ディレクトリの正規の場所は、その$HOME
ディレクトリのルートにあります:
Unixのようなシステムで
$HOME/.vimrc <-- the file $HOME/.vim/ <-- the directory
Windows上で
$HOME\_vimrc <-- the file $HOME\vimfiles\ <-- the directory
上記のレイアウトは、現在および将来、動作することが保証されています。
Vim 7.4では、あなたの素敵なvimrc
を vim
ディレクトリの中に残すことができました。あなたの設定をより簡単に動かすことができれば、それは本当に良い考えです。
7.4を排他的に使用すると、次のようになります。
Unixのようなシステムで
$HOME/.vim/vimrc
Windows上で
$HOME\vimfiles\vimrc
もしあなたが自己完結型のvim/
のメリットを望んでいても、7.4とそれ以前のバージョン、または古いバージョンの両方を使うならば、最も単純で将来的には、この行と次の行だけを置くことです。
runtime vimrc
このファイルには:
Unixのようなシステムで
$HOME/.vimrc
Windows上で
$HOME\_vimrc
$HOME/.vim/vimrc
または$HOME\vimfiles\vimrc
設定を行います。
オプション
オプションには3種類あります。
- ブールオプション、
- 文字列オプション、
- 数字オプション。
オプションの値を確認するには、
- 使用
:set option?
オプションの価値をチェックするには、 - 使用
:verbose set option?
それが最後に設定された場所も見てください。
論理値オプションの設定
set booloption " Set booloption.
set nobooloption " Unset booloption.
set booloption! " Toggle booloption.
set booloption& " Reset booloption to its default value.
文字列オプションの設定
set stroption=baz " baz
set stroption+=buzz " baz,buzz
set stroption^=fizz " fizz,baz,buzz
set stroption-=baz " fizz,buzz
set stroption= " Unset stroption.
set stroption& " Reset stroption to its default value.
番号オプションの設定
set numoption=1 " 1
set numoption+=2 " 1 + 2 == 3
set numoption-=1 " 3 - 1 == 2
set numoption^=8 " 2 * 8 == 16
式を値として使用する
連結を使用して:
execute "set stroption=" . my_variable
using
:let
:let &stroption = my_variable
:help :set
と:help :let
参照してください。
マッピング
- マッピング後にコメントを入れないでください。
- 使用
:map <F6>
は、<F6>
マップされているものとどのモードであるかを表示します。 - 使用
:verbose map <F6>
は、最後にマップされた場所も表示します。 -
:map
と:map!
あまりにも一般的です。使用:n[nore]map
ノーマルモードのマッピングのため、:i[nore]map
挿入モードのために、:x[nore]map
ビジュアルモードのために、等
再帰的マッピング
再帰的マッピングは 、マッピングで他のマッピングを使用する場合にのみ使用してください。
nnoremap b B
nmap <key> db
この例では、 b
は通常モードでB
ように動作します。 再帰的なマッピングではb
を使用するので、 <key>
を押すとdB
ように動作し、 db
ます。
非再帰的マッピング
非再帰的なマッピングは、マッピングでデフォルトのコマンドを使用する場合にのみ使用します。ほとんどの場合、これはあなたが望むものです。
nnoremap <key> db
この例では、 非再帰的なマッピングでb
を使用するので、 b
をリマップするかどうかにかかわらず、キーを押すことは常にdb
ように機能します。
マッピングからコマンドを実行する
nnoremap <key> :MyCommand<CR>
マッピングから複数のコマンドを実行する
nnoremap <key> :MyCommand <bar> MyOtherCommand <bar> SomeCommand<CR>
マッピングから関数を呼び出す
nnoremap <key> :call SomeFunction()<CR>
<Plug>
マッピングのマッピング
map <key> <Plug>name_of_mapping
:help map-commands
、 :help key-notation
、 :help <plug>
参照してください。
さらに読むためにVimのキーマッピングを参照してください
変数
ほとんどのスクリプティング言語と同様に、vimscriptには変数があります。
:let
コマンドで変数を定義することができます:
let variable = value
それを削除する:unlet
:
unlet variable
Vimでは、変数名のスコープは、名前に1文字とコロンを付けることで可能です。プラグインの作成者はその機能を使用してオプションを模倣します:
let g:plugin_variable = 1
参考:help internal-variables
参照してください。
コマンド
- 次にvimrcをリロードしたときにVimがそのコマンドを上書きすることを許可するようにしてください。
- カスタムコマンドは大文字で始まる必要があります。
例
command! MyCommand call SomeFunction()
command! MyOtherCommand command | Command | command
-
:help user-commands
参照してください。
関数
- 関数が定義されているスクリプトを次にリロードするときに、Vimがその関数を上書きできるようにすることを忘れないでください。
- カスタム関数は、大文字(グローバル関数)または
s:
スクリプトローカル関数)で始まらなければなりません。または、それらが定義されているautoloadプラグインに関連付けられた名前の前に付ける必要があります(例えば、{&rtp}/autoload/foo/bar.vim
foo#bar#functionname()
定義することができます)。 - 関数内のパラメーターを使用できるようにするには
a:parameter_name
使用a:parameter_name
。可変長の機能は省略記号を用いて定義することができ...
パラメータが使用するアクセスするために、a:000
すべてのパラメータのリスト)、またはa:0
(パラメータの数に等しいlen(a:000)
)a:1
最初の名前をパラメータなどが含まれます。 - 関数は次のように呼び出すことができます
:call MyFunction(param1, param2)
- 関数のすべての行は暗黙的にa
:
で始まります。したがって、すべてのコマンドはコロンコマンドです - 関数がエラーの場合に実行を続行しないようにするには、関数のシグネチャに
abort
を付けるのが最善です
例
function! MyFunction(foo, bar, ... ) abort
return a:foo . a:bar . (a:0 > 0 ? a:1 : '')
endfunction
スクリプト関数
関数が定義されているファイルで関数を使用することを計画している場合(小さな部分のより大きい関数を壊したか、またはコマンド、マッピングなどで使用するため)、接頭辞それはs:
、無駄な内部関数を使ってグローバル名前空間を散らばうのを避けます:
function! s:my_private_function() " note we don't need to capitalize the first letter this time
echo "Hi!"
endfunction
マッピングからのs:関数の使用
スクリプトローカル関数をマッピングで使用する場合は、特別な<SID>
接頭辞を使用して参照する必要があります。
nnoremap <your-mapping-key> :call <SID>my_private_function()<CR>
参照:help user-functions
参照してください。
ただし、Vim 7以降、(ft)プラグインでは略語、コマンド、メニューのマッピングを定義し、オートロードプラグインでは関数を定義することをお勧めします。これは、現時点では、マッピングからスクリプトのローカル関数を呼び出す必要性が、それまでのものと適切ではないことを意味します。
オートコマンドグループ
- オートコマンドグループは組織には適していますが、デバッグにも役立ちます。それらをあなたが自由に有効/無効にできる小さな名前空間と考えてください。
例
augroup MyGroup
" Clear the autocmds of the current group to prevent them from piling
" up each time you reload your vimrc.
autocmd!
" These autocmds are fired after the filetype of a buffer is defined to
" 'foo'. Don't forget to use 'setlocal' (for options) and '<buffer>'
" (for mappings) to prevent your settings to leak in other buffers with
" a different filetype.
autocmd FileType foo setlocal bar=baz
autocmd FileType foo nnoremap <buffer> <key> :command<CR>
" This autocmd calls 'MyFunction()' everytime Vim tries to create/edit
" a buffer tied to a file in /'path/to/project/**/'.
autocmd BufNew,BufEnter /path/to/project/**/* call MyFunction()
augroup END
参考:help autocommand
。
条件式
if v:version >= 704
" Do something if Vim is the right version.
endif
if has('patch666')
" Do something if Vim has the right patch-level.
endif
if has('feature')
" Do something if Vim is built with 'feature'.
endif
参照:help has-patch
と:help feature-list
参照してください。
設定オプション
一般的には:set
.vimrc
好みに.vimrc
オプションを:set
するように設定します。変更可能なオプションが多数あります。
たとえば、インデントにスペースを使用するには、次のようにします。
:set expandtab
:set shiftwidth=4
:set softtabstop=4
構文ハイライト
ターミナルが色を持っているときに、スイッチのシンタックスハイライトを切り替えます
if &t_Co > 2 || has("gui_running")
syntax on
end
末尾の空白とタブを表示します。タブを表示すると、Makefileでエラーを探すときに特に便利です。
set list listchars=tab:\|_,trail:.
highlight SpecialKey ctermfg=DarkGray
配色
Vimにはいくつかのプリインストールされたカラースキームが付属しています。 Linuxでは、Vimに付属しているカラースキームは/usr/share/vim/vim74/colors/
保存されています(74はバージョン番号、sansピリオドです)。 MacVimはそれらを/Applications/MacVim.app/Contents/Resources/vim/runtime/colors
保存します。
配色の変更
colorscheme
コマンドは、現在の配色を切り替えます。
たとえば、配色を「robokai」に設定するには:
:colorscheme robokai
デフォルトのカラースキームは創造的にdefault
という名前が付けられています。
:colorscheme default
現在インストールされているカラースキーム、タイプのすべてを表示するには:colorscheme
のいずれかのタブまたはCtrl Dその後、 スペースが続くと。
配色のインストール
ユーザーがインストールしたカラースキームは~/.vim/colors/
置くことができます。このディレクトリに配色が追加されると、 colorscheme
コマンドのオプションとして表示されます。
新しいカラースキームを見つけるために、様々なカラースキームを含むvimcolorsのようなサイトがあります。 vim.inkやVivifyのようなツールもあり、独自のカラースキームを作成するのに役立ちます。また、手動で作成することもできます。
行をトグル表示する
有効にするには:
:set number
または:set nu
。
無効にするには -
:set nonumber
または:set nonu
。
カーソル位置に関連して列挙できるようにするには、次のように入力します。
:set relativenumber
ます。
カーソルの場所に関連して列挙を無効にするには、次のように入力します。
:set norelativenumber
。
注:現在の行に実際の行番号を表示するか0
にするかを変更するには、 relativenumber
属性がアクティブな間に:set number
と:set nonumber
コマンドを:set nonumber
ます。
プラグイン
Vimプラグインは、vimの機能を変更または強化するために使用できるアドオンです。
vimawesomeにはプラグインの良いリストがあります