サーチ…


構文

  • :relativenumberを設定する
  • :セット番号
  • :set nonumber /:set nonu
  • :pwd

備考

この自動リロードは、 autocmdをサポートするvimのフルバージョンのvimrcを編集する場合にのみ発生します。

クイック "使い捨て"マクロ

これをあなたのvimrcに追加してください:

nnoremap Q @q

"使い捨て"マクロの記録を開始するには、 qq使います。録音を終了するには、 q打ちます(両方のノーマルモードで)。

記録されたマクロを実行するには、 Q使用します。

これは行内で何回も繰り返す必要があるが、後で再び使用する可能性のないマクロに便利です。

Vimの内部でパス補完機能を使う

これは非常に一般的です。ファイルやフォルダへのパスを覚えていて、Vimを開いて覚えたことを書き込もうとしますが、それが正しいと100%確信していないので、エディタを閉じてやり直してください。

パス補完機能が必要で、 /home/ubuntu/my_folder/my_fileというファイルがあり、前のパスを参照している別のファイルを編集しているときは、

挿入モードにする:あなたが望むように挿入するか、それともするか。次に、 /hと書いてください。カーソルがh下にあるときは、 Ctrl + x キーを押しながらCtrl + f キーを押すと、パターン/hが一意であるため、エディタは/home/に入力します。

今、 /home/ubuntu/ my_folder_1 my_folder_2という2つのフォルダがあるとします

あなたは/home/ubuntu/my_folder_2パスが必要です

いつものように:

挿入モードにする

write /h入力し、Ctrl xを押してからCtrl fを押します。今度は/home/ Next /home/ uの後にuを追加し、 Ctrl xを押してからCtrl fを押します。今、 /home/ubuntu/はそのパスが一意であるためです。今度は、 /home/ubuntu/後ろに書いmy Ctrl xCtrl fを押してください。エディタはmy_folder_まで単語を完成させ、ディレクトリツリーを表示するので、矢印キーを使用して目的のものを選択します。

相対線番号をオンにする

削除する行の正確な数がわからないときにいくつかの行の行を削除するには、すべての行を削除するまで10dd5dd3ddを試してください。

相対的な行番号はこの問題を解決します。

sometimes, you see a block of 
text. You want to remove 
it but you 
cannot directly get the 
exact number of 
lines to delete 
so you try 
10d , 5d 
3d until 
you
remove all the block.

NORMALモードにする: Esc

さて、実行:set relativenumber 。完了すると、ファイルは次のように表示されます。

3 sometimes, you see a block of
2 text. You want to remove
1 it but you
0 cannot directly get the
1 exact number of
2 lines to delete
3 so you try
4 10d , 5d
5 3d until
6 you
7 remove all the block.

0は現在の行の行番号で、実際の行番号も相対番号の前に表示されるので、現在の行から行の数を見積もったり、削除したり、数を減らしたりする必要はありません一つ。

6ddような通常のコマンドを実行できるようになり、行数が分かります。

また、同じコマンドの短い形式を使用することができます:set rnu相対数とをオンに:set nornu同じをオフにします。

あなたが:set numberまたはhave :set numberすでにオンにしている場合は、カーソルがある行の行番号を取得します。

3 sometimes, you see a block of 
2 text. You want to remove 
1 it but you 
4 cannot directly get the 
1 exact number of 
2 lines to delete 
3 so you try 
4 10d , 5d 
5 3d until 
6 you 
7 remove all the block. 

行番号の表示

既定のビューから行番号を表示するには

:set number

行番号を非表示にするには

:set nonumber

上記のショートカットもあります。 nunumberと同じです。

:set nonu

行番号を非表示にするには、

:set nu!

挿入モードを終了するためのマッピング

多くのVimユーザーは、 Escの到達が難しく、家の行から簡単にアクセスできる別のマッピングを見つけることになります。 Ctrl - [英語のキーボードのEscと同じで、手が届きやすいです。

j k

inoremap jk <ESC> 

これは本当に簡単にトリガすることができます。あなたの最初の2本の指をホームラインに同時に叩くだけです。 「jk」は英語の単語には決して出現しないので、誤って起動することも難しく、通常モードであれば何もしません。 「ブラックジャック」をあまり入力しない場合は、 inoremap kj <ESC>追加して、2つのキーのタイミングについて心配する必要はありません。

キャップスロック

Linux

Linuxでは、 xmodmapを使ってCaps LockEscと同じようにすることができます 。これをファイルに入れる:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

次に、 xmodmap file実行しxmodmap fileCaps LockEscに再設定します

Windows

Windowsでは、 SharpKeyまたはAutoHotkeyを使用できます。

マックOS

macOS 10.12.1以降をお持ちの場合は、システム環境設定を使用してCaps LockをEscapeに再マップすることができます。 [キーボード]を選択し、[キーボード]タブに移動し、[修飾キー]をクリックします。

キーボードの設定

編集しているファイルのディレクトリやパスを知る方法

あなたのファイルが入っているディレクトリのパスを知るには:

Esc押してコマンドモードに入る

:pwd

これはエディタの一番下にあるディレクトリへのパスを出力します。

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

これで、vimの作業ディレクトリに対して相対的に編集しているファイル名を知りたい場合は、以下を使用できます:

Escキー押してコマンドモードに入ります。CTRL G

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

最後に、編集中のファイルへの絶対パスを取得するには、

Esc押してコマンドモードに入り、

1クリックしてCTRL G

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

機能ブロック内で検索する

カーソルを囲む{}ブロック内のテキストfooを検索するには、次のコマンド( <ESC> - エスケープキー、 <CR> - Enterキー)を使用します。

vi{<ESC>/\%Vfoo<CR>

np押すと、ブロック内のマッチの間をジャンプできます。 hlsearchオプションを有効にすると、すべての一致が強調表示されます。 \%Vは視覚的に選択された領域でのみ検索するようにvimに指示する特別な検索パターン部分です。次のようなマッピングを行うこともできます:

:vnoremap g/ <ESC>/\%V

この後、上記のコマンドは次のように短縮されます。

vi{g/foo<CR>

もう1つの便利な方法は、パターンを含むすべての行を印刷することです。

vi{
:'<,'>g/foo/#

'<,'>範囲が自動的に挿入されます。

:help range:help :g参照してください。

見つかった行のコピー、移動、または削除

多くのユーザーは、行のコピー、移動、削除をすばやく行い、元の場所に戻したいという状況に陥っています。

通常、現在の行の下に単語lotを含む行を移動する場合は、次のように入力します。

/lot<Esc>dd<C-o>p

しかし、生産性を上げるために、以下のような場合にこのショートカットを使用することができます:

" It's recommended to turn on incremental search when doing so
set incsearch

" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``

だからこのような検索:

/lot$m

含まれている行移動するlotカーソルが検索を開始したときにあった行の下に。

vimを起動する前に `sudo`を忘れた場合はファイルを書きます

このコマンドは、開いているファイルをsudoの権限で保存します

:w !sudo tee % >/dev/null

また、マップすることができますw!!ルートとしてファイルを書き出す

:cnoremap w!! w !sudo tee % >/dev/null

保存時にvimrcを自動的にリロードする

保存時にvimrcを自動的にリロードするには、以下をvimrc追加してください:

if has('autocmd') " ignore this section if your vim does not support autocommands
    augroup reload_vimrc
        autocmd!
        autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
    augroup END
endif

最後に、次のように入力します。

:so $MYVIMRC

次にvimrcを保存すると、自動的にリロードされます。

vim-airlineを使用している場合は、 nestedが便利です。エアラインをロードするプロセスによってオートコマンドがトリガされますが、オートコマンドを実行しているのでスキップされます。 nestedれた自動コマンドをトリガし、航空会社が適切にロードできるようにします。

コマンドラインの完了

コマンドラインの補完候補を有効にするためにwildmenuを設定します。
以下を実行する

set wildmenu
set wildmode=list:longest,full

今あなたが言うなら、 :color tab

あなたは得るでしょう

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


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