tmux
功能
-
分屏,
-
允許斷開Terminal連接后,繼續運行行程,
結構
? 一個tmux可以包含多個session,一個session可以包含多個window,一個window可以包含多個pane,
實體
tmux:
session 0:
window 0:
pane 0
pane 1
pane 2
...
window 1
window 2
...
session 1
session 2
...
操作
?
-
tmux:新建一個session,其中包含一個window,window中包含一個pane,pane里打開了一個shell對話框,
-
按下Ctrl + a后手指松開,然后按%:將當前pane左右平分成兩個pane,
-
按下Ctrl + a后手指松開,然后按":將當前pane上下平分成兩個pane,
-
Ctrl + d:關閉當前pane;如果當前window的所有pane均已關閉,則自動關閉window;如果當前session的所有window均已關閉,則自動關閉session,
-
滑鼠點擊可以選pane,
-
按下ctrl + a后手指松開,然后按方向鍵:選擇相鄰的pane,
-
滑鼠拖動pane之間的分割線,可以調整分割線的位置,
-
按住ctrl + a的同時按方向鍵,可以調整pane之間分割線的位置,
-
按下ctrl + a后手指松開,然后按z:將當前pane全屏/取消全屏,
-
按下ctrl + a后手指松開,然后按d:掛起當前session,
-
tmux a:打開之前掛起的session,
-
按下ctrl + a后手指松開,然后按s:選擇其它session,
? 方向鍵 —— 上:選擇上一項 session/window/pane
? 方向鍵 —— 下:選擇下一項 session/window/pane
? 方向鍵 —— 右:展開當前項 session/window
? 方向鍵 —— 左:閉合當前項 session/window
-
按下Ctrl + a后手指松開,然后按c:在當前session中創建一個新的window,
-
按下Ctrl + a后手指松開,然后按w:選擇其他window,操作方法與12. 完全相同,
-
按下Ctrl + a后手指松開,然后按PageUp:翻閱當前pane內的內容,
-
滑鼠滾輪:翻閱當前pane內的內容,
vim
功能
-
命令列模式下的文本編輯器,
-
根據檔案擴展名自動判別編程語言,支持代碼縮進、代碼高亮等功能,
模式
- 一般命令模式
? 默認模式,命令輸入方式:類似于打游戲放技能,按不同字符,即可進行不同操作,可以復制、粘貼、洗掉文本等,
- 編輯模式
? 在一般命令模式里按下i,會進入編輯模式,
? 按下ESC會退出編輯模式,回傳到一般命令模式,
- 命令列模式
? 在一般命令模式里按下:/?三個字母中的任意一個,會進入命令列模式,命令列在最下面,
? 可以查找、替換、保存、退出、配置編輯器等,
操作
-
i:進入編輯模式 -
ESC:進入一般命令模式 -
h或 左箭頭鍵:游標向左移動一個字符 -
j或 向下箭頭:游標向下移動一個字符 -
k或 向上箭頭:游標向下移動一個字符 -
l或 向右箭頭:游標向右移動一個字符 -
n:n表示數字,按下數字后再按空格,游標會向右移動這一行的n個字符 -
0或 功能鍵:游標移動到本行開頭 -
$或 功能鍵:游標移動到本行末尾 -
G:游標移動到最后一行 -
:
n或nG:n為數字,游標移動到第n行 -
gg:游標移動到第一行,相當于1G -
n:n為數字,游標向下移動n行 -
/word:向游標之下尋找第一個值為word的字串, -
?word:向游標之上尋找第一個值為word的字串, -
n:重復前一個查找操作 -
N:反向重復前一個查找操作 -
:n1,n2s/word1/word2/g:n1與n2為數字,在第n1行與n2行之間尋找word1這個字串,并將該字串替換為word2 -
:1,$s/word1/word2/g:將全文的word1替換為word2 -
:1,$s/word1/word2/gc:將全文的word1替換為word2,且在替換前要求用戶確認, -
v:選中文本 -
d:洗掉選中的文本 -
dd: 洗掉當前行 -
y:復制選中的文本 -
yy: 復制當前行 -
p: 將復制的資料在游標的下一行粘貼 -
u:撤銷 -
Ctrl + r:取消撤銷 -
Shift + >:將選中的文本整體向右移動 -
Shift + <:將選中的文本整體向左移動 -
:w保存 -
:w!強制保存 -
:q退出 -
:q!強制退出 -
:wq保存并退出 -
:set paste設定成粘貼模式,取消代碼自動縮進 -
:set nopaste取消粘貼模式,開啟代碼自動縮進 -
:set nu顯示行號 -
:set nonu隱藏行號 -
gg=G:將全文代碼格式化 -
Ctrl + q:當vim卡死時,可以取消當前正在執行的命令
相關練習
- 進入
homework_0檔案夾,創建檔案names.txt,并順次將下列姓名寫入該檔案,每個名字占一行,
AcWing、yxc、Bob、張強、李明、Alice
cd homework_0
vim names.txt
iAcwing<Enter>yxc<Enter>Bob<Enter>張強<Enter>李明<Enter>Alice
<Esc>
:wq
-
進入
homework_1檔案夾,打開problem.txt,并依次洗掉下列字符:- 最后一行第
101個字符. - 第
3行第8個字符 - 第
1行第30個字符 - 第
16行第55個字符 - 第
9行第80個字符 - 最后保存檔案并退出,
- 最后一行第
cd homework_1
vim problem.txt
G101<Space>i<backspace>Esc
3G8<Space>i<backspace>Esc
gg30<Space>i<backspace>Esc
16G55<Space>i<backspace>Esc
9G80<Space>i<backspace>Esc
:wq
- 進入
homework_2檔案夾,打開problem.txt,并依次執行如下操作:- 在第1個
"two"的后面添加"abc" - 在第2個
"two"的前面添加"def" - 將第3個
"two"后面的連續12個字符刪掉 - 將第4個
"two"所在的行刪掉 - 最后保存檔案并退出,
- 在第1個
cd homework_2
vim problem.txt
gg
/two<Enter>
3<Space>iabc<Esc>
nidef<Esc>n
n3<Space>d12<Space>
ndd
:wq
-
進入
homework_3檔案夾,打開problem.txt,并依次執行如下操作:- 將第
5行至第15行中所有of替換成OF, - 將全文中所有的
the替換成THE, - 將第偶數個
is替換成IS,第奇數個is不變,下標從1開始,
- 將第
cd homework_3
vim problem.txt
:5,15s/of/OF/g
:1,$s/the/THE/g
:1,$s/is/IS/gcnynynynynyny...
-
進入
homework_4檔案夾,打開problem.txt,并依次執行如下操作:-
洗掉第
11行 -
將所洗掉的行粘貼到檔案最后一行的下一行
-
復制第
5行 -
將所復制的行粘貼到檔案當前最后一行的下一行
-
cd homework_4
vim problem.txt
11GddGp5GyyGp
:wq
- 進入
homework_5檔案夾,打開problem.txt,并依次執行如下操作:- 洗掉第
11行第15個字符(包含該字符)至第13行第5個字符(包含該字符) - 將所洗掉的內容粘貼到檔案末尾(注意不要另起一行)
- 復制第
5行第88個個字符(包含該字符)至第7行第6個字符(包含該字符) - 將所復制的內容粘貼到當前檔案末尾(注意不要另起一行)
- 洗掉第
cd homework_5
vim problem.txt
11G14<Space>v13G5<Space>dG$p
5G87<Space>v7G6<Space>yG$p
- 進入
homework_6檔案夾,并依次執行如下操作:-
清空
source0.cpp -
將
source1.cpp中的第1-3行和第12-24行復制到source0.cpp中
-
cd homework_5
vim source0.cpp
ggdG:wq
vim source1.cpp
1Gv3G$y:q
vim source0.cpp
p:wq
vim source1.cpp
12Gv24G$y:q
vim source0.cpp
G$i<Right><Enter><Esc>p:wq
- 進入
homework_7檔案夾,格式化source.cpp
cd homework_7
vim source.cpp
gg=G
- 進入
homework_8檔案夾,打開source.cpp,并依次執行如下操作:- 將第
15-21行向右縮進2次 - 將第
22-23行向左縮進1次,
- 將第
cd homework_8
vim source.cpp
15Gv21G>15Gv21G>
22Gv23G<
?
?
- 進入
homework_9檔案夾,打開鏈接:https://www.acwing.com/activity/content/code/content/1694465/新建檔案source.cpp,將鏈接中的代碼抄進source.cpp檔案中,
cd homework_9
vim source.cpp
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b << endl;
return 0;
}
<Esc>:wq
?
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297239.html
標籤:其他
