標籤:部分 ash 令行 linu 編輯 表達 跳轉 大小 pre
vim編輯器及檔案測試
vim編輯器
在Linux中,使用文字檔來儲存設定檔
1、幾種基本的模式:
編輯模式:鍵盤操作通常被解析為編輯命令:
輸入模式:輸入模式
末行模式:vim的內建的命令列介面,執行vim內建命令
2、模式之間的切換:
編輯模式-->輸入模式(從編輯模式進入到輸入模式)
i:當前游標所在處輸入內容
I: 在當前游標所在行的行首
a:在當前游標所在處的後面
A:在當前游標所在行的行尾輸入
o:在游標所在行的下方新增一行空白行輸入
O:在游標所在行的上方新增一行空白行輸入
輸入模式-->編輯模式(從輸入模式進入編輯模式)
ESC
編輯模式-->末行模式(末行模式只能從編輯模式進入)
:
末行模式-->編輯模式(末行模式進入編輯模式)
ESC,ESC(連按兩次)
3、vim命令的使用格式
vim [options] /path/to/file...
退出:(一般在末行模式下進行)
:q!強制退出,不儲存並退出(中間沒有空格)【命令之間沒有空格】
:wq 儲存修改並退出
:x,儲存並退出
編輯模式下的退出
編輯模式:ZZ,儲存退出
開啟:(一次可以開啟多個);然後在末行模式下進行切換,
多檔案跳轉
:next 下一個
:prev 上一個
:first 第一個
:last 最後一個
:qall 退出所有的檔案
:wqall 修改並退出多個檔案
分隔視窗開啟多個檔案:
-o:水平分隔
ctrl+w,左右箭頭
進入下面的視窗:Ctrl+w,向下的箭頭
-O:垂直分隔
ctrl+w,上下箭頭
進入右邊的視窗 Ctrl+w,向右的箭頭
+[#]:開啟檔案後在第#號行首
+:開啟檔案後在最後一行
游標移動:
單字元移動:
h:左
l:右
j:下
k:上
可以和數字組合(數字在前,字母在後)
單詞間移動:
w:調至下一個單詞的詞首
b:當前或前一個的詞首
e:當前或下一個詞的詞尾
行內移動:
0:絕對行首 (此處是數值零)
^:第一個非空白字元(行首錨定符)
$:絕對行尾 (行尾錨定符)
句子間移動:
):上一句
(: 下一句
段落間移動:
}:上一段
{:下一段
行間移動:
#G:第幾行
G:最後一行
1G:第一行
編輯操作:
x:刪除游標所在處的字元
#x:刪除游標所在處向後的#個字元
r:替換游標所在處的字元
d:刪除命令
結合游標跳轉命令使用
%:全部刪除
dd:刪除一行
#dd:刪除所在行後的#行
末行模式:範圍定界
start,end:可以使用絕對定界,也可以使用相對定界
.:表示當前行
$:最後一行
.,$-2:倒數第3行
/pat1(模式)/,/pat2/:起始處為游標所在行
從第一次被模式1匹配到的行開始,到第一次被模式2匹配到的行結束,中間的所有行
c:改變(替換)
跟d一樣操作(最後轉換成輸入模式)
y:yank,複製
跟d一樣操作
p:paste 粘貼
複製或刪除的是整行
(小寫)p:當前行的下一行
(大寫)P:當前行的上一行
複製或刪除的為非整行
(小寫)p:粘貼在游標所在字元的後面
(大寫)P: 粘貼在游標所在字元的前面
撤銷編輯:
u:undo
#u:最近50次操作
撤銷此前的撤銷操作:
ctrl+r
重複執行此前的命令:
.
翻屏:
ctrl+f:向檔案尾部翻一屏
ctrl+b:向檔案首部翻一屏
ctrl+d:向檔案尾部翻半屏
ctrl+u:向檔案首部翻半屏
Enter:下一行
k :上一行
尋找:
/keyword
?keyword
n:
N:
支援Regex
:set nohlsearch 關閉高亮顯示,對當前shell有效
4、vim的可視化模式
編輯模式:
v: 按照游標走過的地區選取項目
V:選取矩形塊
開啟多個檔案,分視窗:
vim -o
vim -O
Ctrl+w, 上下箭頭
分割當前視窗(平均分割):
Ctrl+w, s
Ctrl+w, v
視窗屬性的定義:
:set nu :顯示行號
:set nonu :不顯示行號
:set ai 自動縮排
:set noai
:set ic忽略大小寫
:set noic
:set sm (show match)顯示匹配(對應)的括弧
:set nosm
文法高亮:
:syntax on
:syntax off
搜尋高亮:
:set hlsearch
:set nohlsearch
5、vim的設定檔:
全域:/etc/vimrc
個人:~/.vimrc
尋找替換:
:地址定界s/尋找模式/替換為的內容/gi
g:全域替換(global)
i:不區分大小寫(ignore-case)
:地址定界[email protected]尋找模式@替換為的內容@gi
&:用於在替換為的內容部分中引用前面匹配到的所有內容
bash的檔案測試
[ 測試檔案 ]
[[ 測試檔案 ]]
test 測試檔案
單目測試:
-e /path/to/file :測試檔案是否存在
-a /path/to/file :測試檔案是否存在
-f /path/to/file: 測試是否為普通檔案
-d /path/to/somefile: 測試是否為目錄檔案
-b /path/to/somefile : 測試檔案是否存在並且是否為一個塊裝置檔案
-c /path/to/somefile : 測試檔案是否存在並且是否為一個字元裝置檔案
-h|-L /path/to/somefile : 測試檔案是否存在並且是否為符號連結檔案
-p /path/to/somefile : 測試檔案是否存在並且是否為管道檔案:
-S /path/to/somefile : 測試檔案是否存在並且是否為通訊端檔案:
-r /path/to/somefile: 測試其有效使用者是否對此檔案有讀取許可權
-w /path/to/somefile: 測試其有效使用者是否對此檔案有寫入權限
-x /path/to/somefile: 測試其有效使用者是否對此檔案有執行許可權
-s /path/to/somefile: 測試檔案是否存在並且不空
雙目測試:
file1 -nt file2 :測試file1是否比file2更新一些
file1 -ot file2 :測試file1是否比file2更老一些
帶設定檔的指令碼:
在指令碼中使用source命令——倒入別的檔案(即將另外的檔案讀入)
寫指令碼時可以使用設定檔
設定檔只有存在,且目前使用者擁有讀許可權才能夠將其載入進去
[ -r 設定檔 ] && source 設定檔
16、自學——Linux的學習進度與任務【vim編輯器及檔案測試】