1.介紹
1.1學習vi的目的
- 在工作中, 要對 服務器上的 文件進行 簡單 的修改, 可以使用 ssh 登錄到遠程服務器上, 並且使用 vi編輯器 進行簡單的編輯即可
- 需要修改的文件包括源代碼、配置文件
在沒有圖形界面的環境下, 要編輯文件, vi是最佳選擇 每一個使用linux的程序員,都應該或多或少的學習一些vi的常用命令
1.2 vi 和vim
- vi是visual interface的簡稱, 是linux中最經典的文本編輯器
- vi 的核心設計思想 :讓程序員的手指始終保持在鍵盤的 核心區域, 就能完成所有的編輯操作
- vi編輯器在 系統管理 服務器管理 編輯文件時, 其功能永遠不是圖形界面的編輯器能比擬的
特點
- 只能是編輯 文本內容, 不能對 字體 段落進行排版
- 不支持鼠標操作
- 沒有菜單
- 只有命令
vim
vim 是從vi發展出來的文本編輯器, 支持代碼補全、編譯 及 錯誤跳轉等方便編程的功能提別豐富, 在程序員中被廣泛使用, 被稱爲編輯器之神
2.打開和新建文件
在終端中直接輸入vi加上文件名即可,如果文件不存在則退出文件時會自動新建一個文件
vi 文件名
案例:
目前該目錄下面是沒有test.txt的
通過 vi test.txt 進入進入文件的命令模式
通過:進入到編輯模式wq保存退出
再次通過ll查看該目錄下的文件目錄時會發現多了一個test.txt文件,說明已經自動給創建了
2.1 vi的三種工作模式
- 命令模式 打開文件首先進入命令模式, 是使用vi的入口
- 編輯模式 正常的編輯文字
- 末行模式 執行保存、退出等功能
2.1.1 末行模式
進入末行模式的方式:在命令模式下:(shift+;),如果在編輯模式下要先esc退出進入到命令模式下
2.1.2打開文件並且定位行
vi 文件名 +行數
提示:如果只帶上+而沒有指定行數會直接跳到最後一行
3.常用命令
提示: vi命令較多, 不要期望一下子全部都記住, 個別命令忘記了, 只是會影響編輯速度而已,在使用vi命令時, 注意 關閉中文輸入法
3.1移動
1) 上 下 左 右
命令 | 功能 | 手指 |
---|---|---|
h | 左 | 食指 |
j | 下 | 食指 |
k | 上 | 中指 |
l | 右 | 無名指 |
2)行內移動
命令 | 英文 | 功能 |
---|---|---|
w | word | 向後移動一個單詞 |
b | back | 向前移動一個單詞 |
0 | 移動到行首 | |
^ | 移動到行首 | |
$ | 移動到行尾 |
3)行數移動
命令 | 英文 | 功能 |
---|---|---|
gg | go | 移動到第一行 |
G | go | 移動到最後一行 |
數字gg | go | 移動到第數字行 |
數字G | go | 移動到第數字行 |
:數字 | 移動到數字行 |
4)屏幕移動
3.2移動(程序)
1)段落移動
- vim中使用 空行 來區分段落
- 程序開發時, 通常 一段功能相關的代碼會寫在一起 – 之間沒有空行
2)括號切換
- 在程序世界中, ()、[]、{}使用率很高, 而且 都是成對出現的.
3.3選中文本(可視模式)
- 學習 複製 命令前, 應該先學會 怎麼樣選中 要複製的代碼
- 在 vi 中要選擇文本, 需要顯示 visual 命令切換到 可視模式
- vi 中提供了 三種 可視模式, 可以方便程序員的選擇 選中文本的方式
- 按 ESC 可以放棄選中, 返回到 命令模式
3.4撤銷和恢復撤銷(保命指令)
3.5刪除文本
組合命令:
3.6複製和剪切
vi中提供一個被複制文本的緩衝區
- 複製 命令會將選中的文字保存在緩衝區
- 刪除命令會將刪除的文字保存在緩衝區
- 在需要的位置, 使用 粘貼 命令可以將緩衝對的文字插入到光標所在的位置
3.7替換
- R命令可以進入 替換模式, 替換完成後, 按下esc回到命令模式
- 替換命令 的作用就是不用進入 編輯模式, 對文件進行 輕量級的修改
3.8查找
命令 | 功能 |
---|---|
/str | 從光標往下查找str |
?str | 從光標往上查找str |
3.9查找並替換
- 在vi中查找替換需要在末行模式下進行
- 全局替換:
: %s/舊文本/新文本/g
- 選中區域替換:
s/舊文本/新文本/g
提示:如果把末尾的g改爲gc會有提示! y-替換 n-不替換
3.10插入命令(重要)
進入編輯模式的的命令如下: