Linuxエディター-vimの使用
1.vimの基本概念
vimには多くのモードがありますが、実際には、コマンドモード(コマンドモード)、挿入モード(挿入モード)、ボトムラインモード(最終行モード)の3つを使用するのが一般的です。各モードの機能は次のとおりです。
-
ノーマル/ノーマル/コマンドモード(ノーマルモード)
画面カーソルの移動を制御し、文字、単語、または行を削除し、特定のセクションを移動およびコピーして挿入モードに入る、または最後の行モードに移動する
-
挿入モード
挿入モードでのみテキスト入力が可能です。「ESC」キーを押すとコマンドラインモードに戻ります。このモードは、後で使用する最も頻繁な編集モードです。
-
最終行モード
ファイルを保存または終了します。ファイルの置換、文字列の検索、行番号の一覧表示も実行できます。コマンドモードでは、shift +:はこのモードに入ることができます。すべてのモードを表示するには:vimを開き、ボトムラインモードで直接入力します。
2.vimの基本操作
- vimと入力し、システムがシンボルを要求した後にvimとファイル名を入力し、vimの全画面編集画面に入ります。
$ vim test.c
vimに入った後、[通常モード]になり、[挿入モード]に切り替えたときにのみテキストを入力できます。
-
[通常モード] [挿入モード]に切り替えます
入力を入力し
ますi
入力o -
挿入モード] [通常モード]に切り替えます
現在[挿入モード]では、常にテキストしか入力できません。間違った単語を入力し、カーソルキーを使用して単語を削除したい場合は、「ESC」キーを押して[通常モード]に移動し、テキストを削除してください。 。もちろん、直接削除することもできます。
-
[通常モード] [最終回線モード]に切り替えます
[shift +:]と入力します
- vimを終了し、ファイルを保存します。[通常モード]で、「:」コロンキーをクリックして「最終行モード」に入ります。例:
:w (保存当前文件)
:wq (保存并退出vim)
:q (输入q,不存盘直接退出vim)
3.vimノーマルモードコマンドセット
-
挿入モード
「i」を押して挿入モード「挿入モード」に切り替え、「i」を押して挿入モードに入り、カーソルの現在位置からファイルの入力を開始します。
「a」を押して挿入モードに入った後、テキストは現在のカーソル位置の隣の位置から入力されます。
「o」を押して挿入モードに入ると、新しい行が挿入され、行の先頭からテキストが入力されます
-
挿入モードからコマンドモードに切り替えます
[ESC]キーを押してください
-
カーソルを移動します
Vimはキーボードのカーソルを直接使用して上下左右に移動できますが、通常のvimは小文字の英語文字「h」、「j」、「k」、「l」を使用してカーソルを制御して左、下、上、右に移動します。グリッド
[G]を押す:記事の最後に移動する
[$]を押す:カーソルがある行の「行の終わり」に移動する
[^]を押す:カーソルがある行の「行の先頭」に移動する
[w]を押す:カーソルを次の行に移動する
単語の先頭で[e]を押す:カーソルが次の単語の終わりにジャンプし、
[b]を押す:カーソルが前の単語の先頭に戻る
[#I]を押す:カーソルが行の#番目の位置に移動します(例:5I) 、56I
[gg]を押す:テキストを入力して開始
[shift + g]を押す:テキストの終わりを入力して
「ctrl」+「b」を押す:画面が1ページ「戻る」に移動する
「ctrl」+「f」を押す:画面が「」に移動する1ページ前に移動し、
「ctrl」+「u」を押します。画面が「後ろ」に
半ページ移動します。「ctrl」+「d」を押す:画面を「前」に半ページ移動します -
テキストを削除する
「X」:押すたびに、カーソル位置の文字を削除します。
「#x」:たとえば、「6x」は、カーソル位置の「後ろ(自分を含む)」の6文字を削除することを意味します。「
X」:大文字のX 、を押すたびに、カーソル位置の「前
」の文字「#X」を削除します。たとえば、「20X」は、カーソル位置
「dd」の「前」の20文字を削除することを意味します。カーソルが
「#dd」の行を削除します。カーソルがある行から#行を削除します -
コピー
「Yw」:文字をカーソル位置から単語の終わりまでバッファにコピーします。
"#Yw":#ワードをバッファーにコピーします
"yy":カーソルが置かれている行をバッファーにコピーします。
「#Yy」:たとえば、「6yy」は、カーソルが配置されている行から「カウントダウン」する6行のテキストをコピーすることを意味します。
「P」:バッファ内の文字をカーソル位置に貼り付けます。注:「y」に関連するすべてのコピーコマンドは、コピーアンドペースト機能を完了するために「p」と連携する必要があります -
交換
「R」:カーソル位置の文字を置き換えます。
「R」:「ESC」キーが押されるまで、カーソルがある文字を置き換えます -
最後の操作を元に戻す
「U」:誤ってコマンドを実行した場合、すぐに「u」を押すと前の操作に戻ることができます。「u」を繰り返し押すと
、コンプレックスに複数回戻ることができます。
「Ctrl + r」:リカバリを元に戻す -
変化する
「Cw」:カーソル位置の単語を末尾に変更
「c#w」:たとえば、「c3w」は3文字変更を意味します -
指定した行にジャンプします
「Ctrl」+「g」は、カーソルが置かれている行の行番号を示します。
「#G」:たとえば、「15G」は、記事の15行目の先頭にカーソルを移動することを意味します
4.Vim最終行モードコマンドセット
-
行番号
「setnu」をリストする:「setnu」を入力すると、ファイルの各行の前に行番号がリストされます。 -
ファイル
「#」の特定の行にジャンプ:「#」記号は数字を表します。コロンの後に数字を入力し、Enterキーを押してその行にジャンプします。たとえば、数字の15を入力してEnterキーを押すと、記事の15行目にスキップします。 -
文字「/ keyword」を検索する:
最初に「/」キーを押してから、検索する文字を入力します。初めて検索したキーワードが目的のキーワードではない場合は、「n」を押し続けると後で検索されます。キーワードに。
「?キーワード」:最初に「?」キーを押してから、探したい文字を入力します。初めて見つけたキーワードが目的のキーワードでない場合は、「n」を押し続けると目的のキーが見つかります。これまでの言葉。 - ファイル
「w」を保存する:コロンに文字「w」を入力してファイルを保存し、vim
「q」を残します:「q」を押して終了します。vimを離れることができない場合は、「q」の後に「!」を付けてvimを強制できます。 。
「Wq」:終了時にファイルを保存できるように、終了時に「w」と一緒に使用することをお勧めします。
6.単純なvim構成
格好良いのvimを設定するには、ネイティブのコンフィギュレーションが完全に機能しないかもしれない、あなたは、設定を完了するためにプラグインをインストールし、ユーザーが設定したいユーザーであることを確認、するために選択することができます
:上司によって書かれ、格好良いのvimを設定するには、画面の指示に従ってくださいされているリンク添付する1を強力なvimを構成するコマンド
Linuxコンパイラ-gcc / g ++の使用
-
1.
次の4つのステップを実行する実行可能プログラムを生成するための背景知識コード。- 前処理(マクロ置換用)
- コンパイル(アセンブリの生成)
- アセンブリ(マシン識別コードを生成)
- リンク(実行可能ファイルまたはライブラリファイルの生成)
gccのインストール:
sudo yum install -y gcc
g ++のインストール:sudo yum install -y gcc-c++
-
2.gccコマンドの使用方法
コンパイルするgcc [オプション]ファイルのフォーマット[オプション] [オブジェクトファイル]
前処理(マクロ置換用)
前処理機能には、主にマクロ定義、ファイルインクルード、条件付きコンパイル、および解釈が含まれます。
前処理命令は、#記号
:gcc -E hello.c -o hello.i
オプション「-E」で始まるコード行の例です。このオプションの機能は、前処理の終了後にgccにコンパイルプロセスを停止させることです。
オプション「-o」はターゲットファイルを参照し、「。i」ファイルは前処理された元のCプログラムです。コンパイル(アセンブリの生成)
この段階では、gccは最初にコードの標準化、文法エラーなどがあるかどうかをチェックしてコードの実際の作業を判別し、チェックが正しい後、gccはコードをアセンブリ言語に変換します。
ユーザーは「-S」オプションを使用して表示できます。このオプションはアセンブリなしでのみコンパイルされ、アセンブリコードを生成します。
例:gcc –S hello.i –o hello.s
組み立て(機械認識可能なコードの生成)
組み立て段階では、コンパイル段階で生成された「.s」ファイルをオブジェクトファイルに変換します。
読者はオプション「-c」を使用して、組み立てコードが「.o」バイナリに変換されたことを確認できます。ターゲットコードの
例:gcc –c hello.s –o hello.o
リンク(実行可能ファイルまたはライブラリファイルの生成)
コンパイルが成功すると、リンクフェーズに入ります。
例:gcc hello.o –o hello
私たちのCプログラムでは、「printf」の関数実装は定義されておらず、プリコンパイルに含まれる「stdio.h」内の関数の宣言のみがあり、関数の実装は定義されていません。次に、「printf」の実装はどこにありますか。 「機能はどうですか?
-
[]答えは、システムがlibc.so.6という名前のライブラリファイルにこれらの関数を実装しているということです。特に指定がない限り、gccはシステムのデフォルトの検索パス「/ usr / lib」で検索します。 、libc.so.6ライブラリ関数にリンクすることで、関数「printf」を実現できます。これがリンクの関数です。
関数ライブラリは通常、静的ライブラリと動的ライブラリに分けられます
-
静的ライブラリとは、コンパイルおよびリンク時に、ライブラリファイルのすべてのコードが実行可能ファイルに追加されるため、生成されるファイルは比較的大きくなりますが、実行時にライブラリファイルは不要になることを意味します。接尾辞の名前は通常「.a」です
-
逆に、動的ライブラリは、コンパイルおよびリンク時にライブラリファイルのコードを実行可能ファイルに追加しませんが、プログラムの実行時に、ライブラリはランタイムリンクファイルによってロードされるため、システムのオーバーヘッドを節約できます。動的ライブラリの一般的なサフィックスは「.so」です。前述のように、
libc.so.6は動的ライブラリです。gccは、コンパイル時にデフォルトで動的ライブラリを使用します。リンクの完了後、gccは次のような実行可能ファイルを生成できます。gcc hello.o –o hello
- デフォルトでgccによって生成されたバイナリプログラムは動的にリンクされており、fileコマンドで確認できます。
gccオプション:
-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
-S 编译到汇编语言不进行汇编和链接
-c 编译到目标代码
-o 文件输出到 文件
-static 此选项对生成的文件采用静态链接
-g 生成调试信息。GNU 调试器可利用该信息。
-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
-O0
-O1
-O2
-O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-w 不生成任何警告信息。
-Wall 生成所有警告信息。