この記事では、vim (バージョン 7.4) の一般的な使用法を紹介します。 ****vim は強力なテキスト エディターであり、vi の拡張バージョンです。
vim を使用してファイルを編集するために最も一般的に使用されるコマンドは次のとおりです:
vim ファイルは新しいファイルまたは元のファイルです。このようなコマンドを実行すると、エディタが開き、ファイル file の内容が表示されます。写真が示すように:
新規ファイルの場合は、下部左側に「ファイル」[新規ファイル]という文字が表示され、右側にファイル数を示す0,0~1が表示されます。現在のカーソルがある行と文字。古いファイルを開くと、下部左側に「ファイル」3L、66C という文字が表示され、ファイル名、現在のカーソルの行番号、ファイルの総バイト数が表示されます。ファイル内に文字がない場所は、文字 ~ で始まります。
まだ編集することはできません。vim にはファイルを編集するためのモードがいくつかあります。現在のモードは通常モードで、カーソルを移動したり、コピー アンド ペーストやその他のコマンドを実行したりできます。また、一般的な 2 つのモードもあります。モード: 挿入モードとボトムライン モード。
通常、最初は通常モードになっていますが、次のキーを押すと挿入モードになります。 リーリー 挿入モードに入ると、下部に「挿入」という文字が表示され、カーソル位置に入力できます。 ESC キーを押すと、挿入モードから通常モードに戻ります。
通常モードでは、次のキーを押して最下行モードに入ります:リーリー 最下段モードから通常モードに戻るには、ESCキーを2回押す必要があります
結論モードの実行: q (quit) はエディタを終了することを意味します。ファイルの内容が変更されている場合は、次のコマンドを実行する必要があります: wq (write quit) を実行して保存して終了します。保存して終了しない場合は、強制的に終了するには q! を実行する必要があります; wq! として強制的に保存して終了します。
通常モードで実行できるいくつかのコマンドとその機能を次に示します:テキストの変更:
リーリーここに掲載しているのは一部だけなので、初心者にとっては覚えることが多すぎるかもしれません。実際、いくつかの機能を覚えていれば使用できますが、他の機能のほとんどは操作を簡単かつ迅速にするためのものです。
vim のさまざまなコマンドのほとんどは組み合わせて使用できます:たとえば、カーソルの現在位置を行末まで削除したい場合は、 d$;
を実行します。たとえば、現在位置に 50 個の「単語」を挿入したい場合は、50iword ESC を実行するだけで、ESC キーを押した後に 50 個の単語が挿入されます。
たとえば、コピーした内容を 5 回貼り付けたい場合は、5p;を実行します。
たとえば、最後のコマンドを再度 5 回実行したい場合は、5 を実行します。;これらのコマンドを上手に使用すると、ファイルの書き込み速度が大幅に向上します。
挿入モード (通常モードでは a、i、o などを押す) では、単語の先頭を入力し、CTRL-P または CTRL-N を押すと自動的に入力が完了します。
最後の行のパターンには 3 つの開始文字 (:、/、?) があり、そのうちの / と ? はパターン検索に一致するために使用されます。
ファイル内で文字列 centos を検索するなど:リーリー この文字列を入力して Enter キーを押すと、vim は一致する文字列をすべて強調表示します。n キーを押すと、カーソルは次の一致する文字列にジャンプします。N キーを押すと、カーソルはジャンプします。前の一致に移動します。 (人間のクエリについて考えてください)
? と / を使用すると、同じ効果が得られますが、方向が逆になります。: 前に紹介した保存および終了コマンド (wq など) など、多くのコマンドを実行できます。
次に、いくつかのボトムラインモードコマンドを紹介します:
リーリー
これらのコマンドを組み合わせてシェル コマンドを実行し、結果を現在の行の次の行に書き込むこともできます:
r!ls -l現在の行のパターンに一致するすべての文字列を置換するなど、他のモードでコマンドを組み合わせることができます:
s/pattern/string/g # g はグローバル
を意味します このファイル内のパターンに一致するすべての文字列を置換するには:
%s/pattern/string/g # % はすべての行を意味します
指定した行の一致する文字列を置き換える場合:
n,ms/パターン/文字列/g
ここで、n と m は行番号を表す数字です。ドットを使用して現在の行を表すことができます
現在行から5行目までの内容を削除したい場合:
.,5d
現在の行が 5 行目より下にある場合、逆削除のプロンプトが表示されます。
/pattern および :s/pattern/string を使用する場合、pattern は文字列パターンと一致するために使用される正規表現です。正規表現は、以前に紹介したワイルドカード (基本コマンドの紹介 2) といくつかの類似点がありますが、この 2 つの違いを区別することに注意する必要があります。
ワイルドカードは主にファイル名を一致させるために使用されます。正規表現はファイル名を一致させるために使用できるだけでなく、実際には任意の文字列と一致させることができます。ワイルドカードよりも汎用性が高く、ほとんどのプログラミング言語と一部のツール (vim、grep、awk、sed など) は正規表現を直接サポートしています。
次に、使用されるいくつかの正規表現の概念と使用法を紹介します:
匹配位置: ^ 表示行开头 $ 表示行结尾 表示单词结尾 匹配字符: . 表示匹配任意单个字符(相当于通配符中的?) [...] 表示匹配括号内任意单个字符 [^...] 表示匹配任意一个非列出字符 #参照通配符描述 /a 匹配英文字符,等同于[a-zA-Z]或[[:alpha:]]。 /A 匹配非英文字符,等同于[^a-zA-Z]。 /d 匹配数字,等同于[0-9]或[[:digit:]]。 /D 匹配非数字,等同于[^0-9]。 /x 匹配十六进制数字,等同于[0-9A-Fa-f]或[[:xdigit:]]。 /X 匹配非十六进制数字,等同于[^0-9A-Fa-f]。 /w 匹配单词,等同于[0-9A-Za-z_]。 /W 匹配非单词,等同于[^0-9A-Za-z_]。 /t 匹配TAB字符。 /s 匹配空白字符,等同于[ /t]或[[:blank:]]。 /S 匹配非空白字符,等同于[^ /t]。 /u 匹配大写字母,等同于[A-Z]或[[:upper:]]。 /U 匹配非大写字母。 /n 匹配换行 /r 匹配回车 (...) 匹配并捕获,用/1 /2 /3 ...来引用被捕获的字符串。 | 表示逻辑或 匹配数量: * 表示匹配前一个字符零到任意多次,相当于{0,}。 + 表示匹配前一个字符一到任意多次,相当于{1,}。 ? 表示匹配前一个字符零到一次,相当于{0,1}。#注意和通配符?的区别 {n,m} 表示匹配前一个字符n到m次。
在使用正则表达式时,有时需要在特殊字符之前加上转义字符”/”来使特殊字符表示它的字面意思而不是它的特殊意义,在特定的工具中使用正则时,也需要这样做来避免特殊字符被工具本身解释。
vim在使用如下正则表达式时需要将特殊字符转义:/、/{n,m}、/(…/)、/?、/+、/|下面结合正则举例说明vim中模式匹配及部分命令用法
匹配字符串world并使光标停留在匹配行后第三行行首:
/world/+3
将第三行到第八行行首添加注释符号//:
3,8s/^//////
注意这里的行首符^和转义符’/’的用法:
%g/^/sxyz/normal dd
此命令作用是全局匹配以空白后接xyz开头的行,并执行普通模式下的命令dd
如匹配6个以上的小写字母:
//a/{6,}
如交换冒号:两侧的字符串:
s//(./):/(./)//2:/1/ #注意这里是如何引用之前匹配的分组的
如将所有tag、tog和tug分别改为hat、hot和hut
%s/t/([aou]/)g/h/1t/g
如匹配hello或world两个单词:
///|/
这里只列出部分vim用到的正则表达式,关于正则的更多内容,以后的文章中还会有描述和举例。
vim编辑器是很强大的,这里只描述了部分初级使用方法。vim还能使用视图模式,编辑多文本,设置键盘映射,多剪贴板,录制宏,使用插件等等。完全可以用vim作为IDE来使用。但相对来说,vim的学习曲线比较陡峭,不同的应用场景,需要记忆的命令和方法数量也是完全不同的。建议在学习中,每次只熟悉几个命令,一段时间后,就能流畅快捷的编辑文本了。
以上が基本的な Linux コマンド - テキスト編集 vimの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。