サーチ…


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\です。

vimrcvimディレクトリの正規の場所は、その$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.inkVivifyのようなツールもあり、独自のカラースキームを作成するのに役立ちます。また、手動で作成することもできます。

行をトグル表示する

有効にするには:

:set numberまたは:set nu

無効にするには -

:set nonumberまたは:set nonu

カーソル位置に関連して列挙できるようにするには、次のように入力します。

:set relativenumberます。

カーソルの場所に関連して列挙を無効にするには、次のように入力します。

:set norelativenumber

注:現在の行に実際の行番号を表示するか0にするかを変更するには、 relativenumber属性がアクティブな間に:set number:set nonumberコマンドを:set nonumberます。

プラグイン

Vimプラグインは、vimの機能を変更または強化するために使用できるアドオンです。

vimawesomeにはプラグインの良いリストがあります



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow