サーチ…
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 directoryWindows上で
$HOME\_vimrc <-- the file $HOME\vimfiles\ <-- the directory
上記のレイアウトは、現在および将来、動作することが保証されています。
Vim 7.4では、あなたの素敵なvimrc を vimディレクトリの中に残すことができました。あなたの設定をより簡単に動かすことができれば、それは本当に良い考えです。
7.4を排他的に使用すると、次のようになります。
Unixのようなシステムで
$HOME/.vim/vimrcWindows上で
$HOME\vimfiles\vimrc
もしあなたが自己完結型のvim/のメリットを望んでいても、7.4とそれ以前のバージョン、または古いバージョンの両方を使うならば、最も単純で将来的には、この行と次の行だけを置くことです。
runtime vimrc
このファイルには:
Unixのようなシステムで
$HOME/.vimrcWindows上で
$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_variableusing
: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.vimfoo#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にはプラグインの良いリストがあります