Tmux
Tmux 的核心功能
多窗口和多面板:
-
在一個終端中創建多個窗口(Windows),每個窗口可以運行不同的任務。
-
在每個窗口中,可以進一步分割成多個面板(Panes),實現分屏操作。
會話管理:
-
Tmux 會話(Session)可以在后臺運行,即使斷開 SSH 連接,會話仍然保持活動狀態。
-
重新連接后,可以恢復之前的會話,繼續工作。
快捷鍵操作:
-
Tmux 通過快捷鍵實現快速切換窗口、面板和會話。
腳本化操作:
-
Tmux 支持
-
通過腳本自動化操作,適合批量任務和復雜工作流。
Tmux 的基本概念
-
會話(Session):一個 Tmux 會話是一個獨立的終端環境,可以包含多個窗口。
-
窗口(Window):一個窗口類似于一個標簽頁,可以運行一個或多個面板。
-
面板(Pane):一個面板是窗口中的一個分屏區域,可以運行獨立的命令。
Tmux 的安裝
在大多數 Linux 發行版中,可以通過包管理器安裝 Tmux:
-
Debian/Ubuntu:
sudo apt install tmux
-
CentOS/Red Hat:
sudo yum install tmux
-
macOS(使用 Homebrew):
brew install tmux
Tmux 的基本使用
1. 啟動 Tmux
-
啟動一個新的 Tmux 會話:
tmux
-
啟動一個命名會話session:
tmux new -s 會話名稱
2. 快捷鍵前綴
Tmux 的所有快捷鍵都需要先按?前綴鍵(默認是?Ctrl + b
),然后按其他鍵。例如:
-
Ctrl + b
?+?c
:創建一個新窗口。 -
Ctrl + b
?+?d
:分離當前會話(會話在后臺運行)。
3. 常用快捷鍵
會話操作
-
Ctrl + b
?+?d
:分離當前會話。 -
Ctrl + b
?+?c
:在Session中創建一個新的window -
tmux attach -t 會話名稱
:重新連接到指定會話。 -
tmux ls
:列出所有會話。 -
tmux kill-session -t 會話名稱
:關閉指定會話。
窗口操作
-
Ctrl + b
?+?c
:創建一個新窗口。 -
Ctrl + b + d:掛起當前Session
-
tmux a或者tmux attach:恢復Session
-
Ctrl + b
?+?n
:切換到下一個窗口。 -
Ctrl + b
?+?p
:切換到上一個窗口。 -
Ctrl + b
?+?數字
:切換到指定編號的窗口。 -
Ctrl + b
?+?&
:關閉當前窗口。 -
Ctrl + b
?+?s:選擇其他Session。(上下方向鍵選擇Session,左右方向鍵選擇展開或收起)
Ctrl + b
?+ w:選擇其他Window.(方法和上述session選擇相同)
面板操作
-
Ctrl + b
?+?%
:垂直分割面板。
-
Ctrl + b
?+?"
:水平分割面板。
-
Ctrl + b
?+?方向鍵
:切換到指定方向的面板。
-
Ctrl + b
?+?x
:關閉當前面板。 -
Ctrl + b
?+?z
:最大化當前面板(再按一次恢復)。
4. 自定義配置
Tmux 的配置文件是?~/.tmux.conf
,可以通過編輯該文件自定義 Tmux 的行為。例如:
# 將前綴鍵改為 Ctrl + a
unbind C-b
set-option -g prefix C-a
bind C-a send-prefix# 啟用鼠標支持
set -g mouse on# 設置面板分割快捷鍵
bind | split-window -h
bind - split-window -v# 設置狀態欄顏色
set -g status-bg blue
set -g status-fg white
修改配置文件后,重新加載配置:
tmux source-file ~/.tmux.conf
5.Tmux的復制?
我們會發現在tmux中復制好像不是那么方便
我們通常采用按住shift鍵再用鼠標拖拽選中
Vim
簡介
Vim(Vi Improved)是一款功能強大且高度可定制的文本編輯器,最初由Bram Moolenaar開發,是對經典的vi
編輯器的改進版本。盡管Vim的學習曲線較為陡峭,但它在程序員和高級用戶中非常受歡迎,尤其是在Linux和Unix環境中。以下是Vim的主要功能和優點:
1. 功能強大
-
多模式編輯:Vim采用多模式編輯方式,包括普通模式(Normal Mode)、插入模式(Insert Mode)、命令模式(Command Mode)和可視模式(Visual Mode)。這種模式劃分使得編輯操作更加高效,用戶可以通過快捷鍵快速切換模式并執行復雜的編輯任務。
-
豐富的文本操作:Vim提供了大量的文本操作命令,如復制(
yank
)、粘貼(put
)、刪除(delete
)、替換(change
)、查找(search
)和替換(substitute
)等。這些命令可以通過組合鍵快速執行,大大提高了編輯效率。 -
宏錄制與回放:用戶可以錄制一系列操作并將其保存為宏,然后通過簡單的命令重復執行這些操作。這對于重復性任務非常有用,可以節省大量時間。
-
多窗口和多標簽支持:Vim支持多窗口(
split windows
)和多標簽(tabs
),允許用戶同時打開多個文件,并在它們之間快速切換。這使得代碼對比和多文件編輯變得更加方便。 -
語法高亮和代碼補全:Vim內置了對多種編程語言的語法高亮支持,并且可以通過插件實現智能代碼補全。這對于編寫代碼非常有幫助,可以提高開發效率并減少錯誤。
-
強大的正則表達式支持:Vim的查找和替換功能支持復雜的正則表達式,用戶可以輕松實現復雜的文本匹配和替換操作。
2. 高度可定制
-
配置文件:Vim允許用戶通過
.vimrc
配置文件自定義編輯器的行為,包括鍵綁定、顏色方案、縮進設置、插件管理等。用戶可以根據自己的需求和習慣調整Vim的各個方面。 -
插件生態系統:Vim擁有豐富的插件生態系統,用戶可以通過安裝插件來擴展其功能。例如,
vim-plug
是一個流行的插件管理器,可以幫助用戶輕松安裝和管理插件。常見的插件包括代碼補全插件(如YouCompleteMe
)、項目管理插件(如NERDTree
)和語法檢查插件(如Syntastic
)。 -
自定義命令和函數:用戶可以使用Vim腳本語言(Vimscript)編寫自定義命令和函數,實現個性化的編輯功能。這使得Vim可以適應幾乎任何用戶的特定需求。
3. 輕量級和跨平臺
-
輕量級:Vim是一個輕量級的文本編輯器,啟動速度快,占用系統資源少。它不需要復雜的圖形界面或大量的內存,因此在資源受限的環境中表現良好。
-
跨平臺支持:Vim可以在多種操作系統上運行,包括Linux、Unix、macOS和Windows。用戶可以在不同的平臺上使用相同的編輯器,無需重新學習。
-
終端集成:Vim可以在終端中運行,也可以作為獨立的圖形界面應用程序運行(如
gvim
)。這使得用戶可以根據自己的喜好選擇使用方式。
4. 提高效率
-
鍵盤快捷鍵:Vim的所有操作都可以通過鍵盤快捷鍵完成,無需頻繁切換到鼠標。這使得用戶可以保持雙手在鍵盤上,從而顯著提高編輯效率。
-
全局操作:Vim允許用戶對整個文件或選定區域執行全局操作,例如一次性替換所有匹配的文本。這比逐個修改要高效得多。
-
命令行模式:Vim的命令行模式允許用戶輸入復雜的命令來執行各種操作,例如批量替換、文件讀寫等。這使得Vim可以處理復雜的文本操作,而無需離開編輯器。
5. 社區支持
-
活躍的社區:Vim擁有一個龐大而活躍的用戶社區,用戶可以在社區中找到大量的教程、配置文件和插件。社區成員也經常分享經驗和技巧,幫助新用戶快速上手。
-
豐富的文檔和資源:Vim的官方文檔非常詳細,用戶可以通過
:help
命令隨時查閱。此外,互聯網上也有大量的Vim教程、博客和視頻資源,可以幫助用戶學習和提高。
模式
普通模式(Normal Mode):
-
默認進入的模式,用于導航和操作文本。
-
按?
Esc
?鍵可以隨時從其他模式回到普通模式。
插入模式(Insert Mode):
-
用于輸入和編輯文本。
-
從普通模式按?
i
、a
、o
?等鍵進入插入模式。
命令模式(Command Mode):
-
用于執行保存、退出等命令。
-
從普通模式按?
:
?進入命令模式。
基本操作
1. 啟動和退出 Vim
-
啟動 Vim:
vim 文件名 # 打開或創建文件
-
退出 Vim:
-
普通模式下按?
:q
?退出(如果文件未修改)。 -
普通模式下按?
:q!
?強制退出,不保存修改。 -
普通模式下按?
:wq
?保存并退出。 -
普通模式下按?
:x
?或?ZZ
?保存并退出。
-
2. 光標移動
-
基本移動:
-
h
:左移 -
j
:下移 -
k
:上移 -
l
:右移
-
-
按單詞移動:
-
w
:移動到下一個單詞的開頭。 -
b
:移動到上一個單詞的開頭。 -
e
:移動到當前單詞的末尾。
-
-
行內移動:
-
0
:移動到行首。 -
$
:移動到行尾。 -
^
:移動到行首第一個非空白字符。 -
n【space】:往后移n個字符 (支持自動換行)
-
-
跨行移動:
-
gg
:移動到文件開頭。 -
G
:移動到文件末尾。 -
:n
:跳轉到第?n
?行(例如?:10
?跳轉到第 10 行)。
-
3. 插入和編輯
-
進入插入模式:
-
i
:在光標前插入。 -
a
:在光標后插入。 -
o
:在當前行下方插入新行。 -
O
:在當前行上方插入新行。
-
-
刪除:
-
x
:刪除光標處的字符。 -
dw
:刪除從光標到下一個單詞開頭的字符。 -
dd
:刪除整行。 -
D
:刪除從光標到行尾的內容。
-
-
復制和粘貼:
-
yy
:復制當前行。 -
yw
:復制當前單詞。 -
p
:粘貼到光標后。 -
P
:粘貼到光標前。
-
-
撤銷和重做:
-
u
:撤銷上一次操作。 -
Ctrl + r
:取消撤銷操作。
-
-
整體移動
- 大于號 >:將選中的文本整體向右縮進一次
- 小于號 <:將選中的文本整體向左縮進一次
4. 搜索和替換
-
搜索:
-
/關鍵詞
:向下搜索(例如?/hello
)。 -
?關鍵詞
:向上搜索。 -
按?
n
?跳轉到下一個匹配項,按?N
?跳轉到上一個匹配項。
-
-
替換:
- :n1,n2s/word1/word2/g:n1與n2為數字,在第n1行與n2行之間尋找word1這個字符串,并將字符串替換
-
:s/舊內容/新內容
:替換當前行的第一個匹配項。 -
:s/舊內容/新內容/g
:替換當前行的所有匹配項。 -
?:1,$s/word1/word2/g:將全文的word1替換為word2
-
:1,$s/word1/word2/gc:將全文的word1替換為word2,且在替換前要求用戶確認。
-
:s/舊內容/新內容/gc
:替換當前行的所有匹配項,且在替換前需要用戶確認。
-
:%s/舊內容/新內容/g
:替換整個文件中的所有匹配項。
5. 保存和退出
-
:w
:保存文件。 -
:w文件名
:另存為指定文件。 -
:q
:退出 Vim。 -
:q!
:強制退出,不保存修改。 -
:wq
?或?:x
:保存并退出。 -
gg=G:代碼格式化(會占用很大帶寬)
6. 分屏和多文件編輯
-
分屏:
-
:sp 文件名
:水平分屏打開文件。 -
:vsp 文件名
:垂直分屏打開文件。 -
Ctrl + w + h/j/k/l
:在分屏間切換。
-
-
多文件編輯:
-
:e 文件名
:打開另一個文件。 -
:bn
:切換到下一個文件。 -
:bp
:切換到上一個文件。 -
:bd
:關閉當前文件。
-
7. 其他實用命令
-
顯示行號:
-
:set number
:顯示行號。 -
:set nonumber
:隱藏行號。
-
-
語法高亮:
-
:syntax on
:啟用語法高亮。 -
syntax off
:關閉語法高亮。 -
?:noh 關閉查找關鍵詞高亮
:
-
-
查看幫助:
-
:help
:打開幫助文檔。 -
help 命令
:查看特定命令的幫助(例如?:help :wq
)。 -
set paste:設置成粘貼模式,取消代碼自動縮進
-
set nooaste:取消粘貼模式,開啟代碼自動縮進
-
8.可視模式
-
進入方式:按下
v
鍵。 -
功能:允許用戶通過方向鍵(
h
、j
、k
、l
)或鼠標選擇文本的任意部分。 -
用途:適合選擇不規則的文本片段,例如單詞、句子或代碼片段。
-
操作示例:
-
按
v
進入普通可視模式。 -
使用方向鍵選擇文本。
-
按
d
刪除選中的文本,或按y
復制選中的文本。
-
-
退出可視模式:按兩下Esc