English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux vi/vim

すべてのUnix Likeシステムにはvi文書エディタが組み込まれていますが、他の文書エディタは必ずしも存在しません。

しかし、現在よく使われているのはvimエディタです。

vimはプログラム編集能力を持ち、字体の色で文法的正確性を判別し、プログラム設計を便利にします。

関連記事:史上最全Vimショートカットキー図 - 初級から上級者

vimとは何ですか?

Vimはviから発展したテキストエディタです。コード補完、コンパイル、エラージャンプなどのプログラミングに便利な機能が豊富で、プログラマー間で広く使用されています。

簡単に言えば、viは古いタイプのテキストプロセッサですが、機能は非常に充実しており、進歩の余地はあります。vimはプログラム開発者にとって非常に便利なツールと言えます。

そして、vimの公式ウェブサイト(http://www.vim.org) 自分もvimをプログラム開発ツールではなく、テキスト処理ソフトウェアだと言っています。

vimキーボードマップ:

vi/vimの使い方

基本的にはvi/vimは3つのモードに分かれています。それぞれが:コマンドモード(Command mode)インプットモード(Insert mode)およびバックスラッシュコマンドモード(Last line mode)。これらの3つのモードの役割はそれぞれです:

コマンドモード:

ユーザーがviを起動したばかりです/vim、コマンドモードに入ります。

この状態でキーボードの動作はVimがコマンドとして認識し、入力文字として認識しません。例えば、この時点でiを押しても、文字は入力されず、iはコマンドとして認識されます。

以下は一般的に使われるいくつかのコマンドです:

  • i インプットモードに切り替えて、文字を入力します。

  • x 現在のカーソル位置にある文字を削除します。

  • : バックスラッシュコマンドモードに切り替えて、最下の行にコマンドを入力します。

テキストを編集したい場合:Vimを起動し、コマンドモードに入り、iを押してインプットモードに切り替えます。

コマンドモードには基本的なコマンドしかないので、多くのコマンドはバックスラッシュコマンドモードに切り替えて入力する必要があります。

インプットモード

コマンドモードでiを押すと、インプットモードに入ります。

入力モードでは、以下のキーを使用できます:

  • 文字キーおよびShift組み合わせ、文字を入力

  • ENTER、エンターキー、改行

  • BACK SPACE、バックスペースキー、カーソル前の文字を削除

  • DEL、削除キー、カーソル後の文字を削除

  • 方向キー、テキスト中でカーソルを移動

  • HOME/END、カーソルを行先頭に移動/行末

  • Page Up/Page Down、上/ページ下

  • Insert、カーソルを入力モードに切り替えます/リプレースモード、カーソルは縦線に変わります/下線

  • ESC、入力モードから退出し、コマンドモードに切り替えます

底线コマンドモード

コマンドモードで:(英文字のコロン)を押すと底线コマンドモードに入ります。

底线コマンドモードでは、1文字または複数の文字の命令を入力できます。使用できるコマンドは非常に多くあります。

底线コマンドモードでは、基本的なコマンドがあります(コロンは省略されています):

  • q プログラムを退出

  • w ファイルを保存

ESCキーを押すことでいつでも底线コマンドモードから退出できます。

簡単に言えば、これらの3つのモードは以下のアイコンで表現できます:

vi/vim 使用例

viを使います/vimを一般モードにする

viを使って名前がwのファイルを作成したい場合は、3codebox.txtのファイルを編集する場合、以下のようにできます:

$ vim w3codebox.txt

直接入力 vi ファイル名 viの一般モードに入ることができます。注意してください、viの後には必ずファイル名を追加してください、そのファイルが存在するかどうかに関わらずです!

iを押して入力モードに入ります(編集モードとも呼ばれます)そしてテキストを編集し始めます

一般モードでは、i, o, aなどの文字を押すだけで入力モードに入ることができます!

編集モード中に、左下のステータスバーに–INSERT–が表示されることに気づくでしょう。- のテキストが表示されている場合、それは任意の文字を入力できるヒントです。

この時、キーボードには Esc このボタン以外のボタンはすべて一般的な入力ボタンとして視覚化できますので、どのような編集も行うことができます。

ESCボタンを押して一般モードに戻ります

さて、上記のスタイルに従って編集を完了したと仮定すると、どうすれば退出できますか?もちろんです!正解です!それがESCボタンを押すことです Esc このボタンを押すだけで!すぐに画面の左下隅の–INSERT–が消えることに気づくでしょう!

一般モードで :wq 保存してviを退出

OK、保存して退出するための指示は非常に簡単です、入力してください :wq 保存して退出できます!

OK!これでwを作成に成功しました。3codebox.txtのファイル。

vi/vimキー説明

上記の簡単な例の i, Esc, :wq など以外にも、vimには非常に多くのキーを使用できます。

第1部:一般モードで使用できる光標移動、コピー&ペースト、検索&置換など

光標移動の方法
h または左矢頭キー(←)光標を一文字左に移動します
j または下矢頭キー(↓)光標を一文字下に移動します
k または上矢頭キー(↑)光標を一文字上に移動します
l または右矢頭キー(→)光標を一文字右に移動します
もし右手をキーボードに置くと、hjkl が並んでいますので、これらの4つのボタンを使って光標を移動できます。 もし複数回移動したい場合、例えば下に移動する場合 30 行、"30j" または "30↓" の組み合わせキー、 つまり、行動をしたい回数(数字)を加えて、アクションを押すだけで!
[Ctrl] + [f]スクリーン『下に』一ページ移動します、[Page Down] キーに相当します (常用)
[Ctrl] + [b]スクリーン『上に』一ページ移動します、[Page Up] キーに相当します (常用)
[Ctrl] + [d]スクリーン『下に』半ページ移動します
[Ctrl] + [u]スクリーン『上に』半ページ移動します
+光標を非スペース文字の下の行に移動します
-光標を非スペース文字の上の行に移動します
n<space>この n は『数字』を意味します、例えば、 20 。数字を押した後にスペースキーを押すと、光標はこの行の右に n 文字です。例えば、 20<space> すると光標は後ろに移動します 20 文字の距離です。
0 または機能キー[Home]これは数字『 0 』です:この行の一番前の文字に移動します (常用)
$ または機能キー[End]この行の最後の文字に移動します(よく使われます)
H光標をこのスクリーンの一番上の行の最初の文字に移動します
M光標をこのスクリーンの中央の行の最初の文字に移動します
L光標をこのスクリーンの一番下の行の最初の文字に移動します
Gこのファイルの最後の行に移動します(よく使われます)
nGn は数字です。このファイルの n 行に移動します。例えば、 20G すると、このファイルの最初の行に移動します 20 行です(:set nu と一緒に使えます)
ggこのファイルの最初の行に移動します、これは 1G です! (常用)
n<Enter>n は数字です。光標を下に n 行移動します(よく使われます)
検索&置換
/word光標の下に word という名前の文字列を探します。例えば、ファイル内で vbird を検索する場合 この文字列、このように入力します /vbird で! (常用)
?word光標の上に word という名前の文字列を探します。
nこの n は英文字のキーです。前の検索アクションを繰り返すことを意味します。例えば、 もし今、私たちが実行した /vbird 去向下搜寻 vbird この文字列を、n を押した後、vbird という名前の次の文字列を続けて検索します。 の文字列です。?vbirdを実行すると、nを押すとvbirdという名前の文字列を上向きに続けて検索します!
NこのNは英文字キーです。nと正反対で、前の検索アクションを『逆方向』で行う意味です。 例えば /vbirdの後にNを押すと『上向き』にvbirdを検索する意味になります。
を使用します /wordとn及びNを組み合わせることで非常に役立ちます!繰り返しで特定のキーワードを検索することができます!
:n1,n2s/word1/word2/gn1 とn2 が数字です。第n1 とn2 行間でwordを検索します1 この文字列を検索し、その文字列を置き換えます word2 !例えば、 100まで 200行間でvbirdを検索しVBIRDに置き換えると:
『:100,200s/vbird/VBIRD/g』。(常用)
:1$s/word1/word2/gまたは:%s/word1/word2/g最初の行から最終行までwordを検索します1 文字列、そしてその文字列を置き換えます word2 !(常用)
:1$s/word1/word2/gcまたは:%s/word1/word2/gc最初の行から最終行までwordを検索します1 文字列、そしてその文字列を置き換えます word2 !そして置き換え前にユーザーに確認用の文字を表示して(確認)、 置き換えが必要ですか?(常用)
削除、コピー、貼り付け
x, X一行の中で、xは次に1文字を削除します([del]キーに相当) Xは前に1文字を削除します([backspace]キーに相当) (常用)
nxnは数字です。次にn文字を連続して削除します、例えば 10 文字、 『10』。
ddカーソルのある行全体を削除します(常用)
nddnは数字です。カーソルのある行から下にn行を削除します、例えば 20ddは削除 2行 (常用)
d1Gカーソルのある位置から最初の行までのすべてのデータを削除します
dGカーソルのある位置から最終行までのすべてのデータを削除します
d$カーソルのある位置からその行の最後の文字までを削除します
d0これは数字の0で、カーソルのある位置からその行の最初の文字までを削除します
yyカーソルのある行をコピーします(常用)
nyynは数字です。カーソルのある行から下にn行をコピーします、例えば 20yyはコピー 20 行(常用)
y1Gカーソルのある行から最初の行までのすべてのデータをコピーします
yGカーソルのある行から最終行までのすべてのデータをコピーします
y0カーソルのある文字からその行の先頭までのすべてのデータをコピーします
y$カーソルのある文字からその行の末尾までのすべてのデータをコピーします
p, Ppはコピーしたデータをカーソルの次の行に貼り付けます、Pはカーソルの上の行に貼り付けます! 例えば、現在のカーソル位置が第 2行、そしてコピーが完了しました。 10 データが入力されている場合、pを押すと、 に貼り付けられます 10 行のデータが元の 20行の後、つまり 21 行から貼り始めます。ただし、Pを押すとどうなるでしょう? 従って、元の 20行は以下のように移動します 30行。 (常用)
J光標のある行と次の行のデータを同じ行に結合します
c複数のデータを繰り返し削除する場合、例えば下に削除する 10 行、[ 10cj ]
u前のアクションを復元します。(よく使われます)
[Ctrl]+r前のアクションを再実行します。(よく使われます)
このuと[Ctrl]+rは非常に常用のコマンドです!一つは復元、もう一つは再実行です~ これらの機能キーを使えば、あなたの編集は、ハイハイ!とても楽しいですよ!
.信じてください!これが小数点です!これは前のアクションを繰り返す意味です。 繰り返し削除や繰り返し貼り付けなどのアクションを繰り返したい場合は、小数点「.」を押します! (常用)

第2部:一般モードから編集モードへの切り替えが可能なボタンの説明

入力または置き換えの編集モードに入ります
i, I入力モード(Insert mode)に入ります:
iは「現在の光標のある位置から入力を開始する」という意味で、Iは「現在の行の最初の非スペース文字から入力を開始する」という意味です。 (常用)
a, A入力モード(Insert mode)に入ります:
aは「現在の光標のある次の文字から入力を開始する」という意味で、Aも同様です; 「光標のある行の最後の文字から入力を開始する」という意味です。(よく使われます)
o, O入力モード(Insert mode)に入ります:
これは英文字母oの大文字と小文字です。oは現在の光標のある下一行に新しい行を入力します; Oは現在の光標のある上一行に新しい行を入力します!(よく使われます)
r, R置き換えモード(Replace mode)に入ります:
rは一度だけ光標のある文字を置き換えます;Rは光標のあるテキストを一直線に置き換え、Escキーを押すまで続きます; ESCまで;(よく使われます)
viの画面の左下にこれらのボタンが表示されます『--INSERT--』または『--REPLACE--』の文字があります。 名前からその動作が分かるでしょう!!特に注意してほしいのは、先ほども言ったように、ファイルに文字を入力したい場合、 左下にINSERTまたはREPLACEが見えるまで入力することを忘れないでください!
[Esc]編集モードから退出し、一般モードに戻ります(よく使われます)

第3部:一般モードからコマンドモードへの切り替えが可能なボタンの説明

コマンド行の保存、退出などのコマンド
:w編集したデータをハードディスクのファイルに書き込みます(よく使われます)
:w!ファイルの属性が「読み取り専用」の場合、そのファイルに強制的に書き込みます。ただし、実際に書き込めるかどうかは、 それと、そのファイルの権限に関連があるんですよね!
:qviを退出します(よく使われます)
:q!ファイルを変更したが保存したくない場合、!を使用して強制的に保存せずに退出します。
ちょっと注意してね、viの中で感叹号(!)はよく「強制」という意味を持っています~
:wq保存してから退出します。:wq!の場合は強制的に保存してから退出します (常用)
ZZこれは大文字の Z です!もしあれば、現在のファイルを保存してから退出してください。:wq!と同様の効果です
ZQ保存せずに強制的に退出。:q!と同様の効果です
:w [filename]編集データを別のファイルに保存します(新規保存に似ています)
:r [filename]編集データの中で、別のファイルのデータを読み込みます。つまり、『filename』 このファイルの内容をカーソル位置の後ろに追加します
:n1,n2 w [filename]n1 まで2 の内容を filename というファイルに保存します。
:! command一時的に vi を離れ、コマンドラインモードで command の表示結果を実行します。例えば
『:! ls /home』で vi 内で確認できます /home の下で ls で表示されたファイル情報です!
vim 環境の変更
:set nu行番号を表示します。設定すると、各行の接頭部にその行の行番号が表示されます
:set nonuset nuとは反対に、行番号を非表示にします!

特に注意してください、vi/vim では、数字は非常に意味があるです!数字は通常、何度も行うことを意味する場合があります。また、何番目の何かに行くことを意味する場合もあります。

例えば、削除 50 行の場合、『50dd』ですね!数字はアクションの前に付けます。例えば、私は下に移動する 20 行ですか?それでは『20j』または『20↓』であれば。