tmux和vim的基本操作

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)

  • 用于輸入和編輯文本。

  • 從普通模式按?iao?等鍵進入插入模式。

命令模式(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 鍵。

  • 功能:允許用戶通過方向鍵(hjkl)或鼠標選擇文本的任意部分。

  • 用途:適合選擇不規則的文本片段,例如單詞、句子或代碼片段。

  • 操作示例

    • v 進入普通可視模式。

    • 使用方向鍵選擇文本。

    • d 刪除選中的文本,或按 y 復制選中的文本。

  • 退出可視模式:按兩下Esc

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895963.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Lineageos 22.1(Android 15) 開機向導制作

一、前言 開機向導原理其實就是將特定的category的Activity加入ComponentResolver&#xff0c;如下 <category android:name"android.intent.category.SETUP_WIZARD"/>然后我們開機啟動的時候&#xff0c;FallbackHome結束&#xff0c;然后啟動Launcher的時候…

【二分搜索 C/C++】洛谷 P1873 EKO / 砍樹

2025 - 02 - 19 - 第 55 篇 Author: 鄭龍浩 / 仟濹(CSND) 【二分搜索】 文章目錄 洛谷 P1873 EKO / 砍樹題目描述輸入格式輸出格式輸入輸出樣例 #1輸入 #1輸出 #1 輸入輸出樣例 #2輸入 #2輸出 #2 說明/提示題目中的部分變量思路代碼 洛谷 P1873 EKO / 砍樹 題目描述 伐木工人…

DeepSeek系列模型發展:從LLM到V3、R1的技術突破與優化各階段的重要論文匯總(附下載地址)

DeepSeek 系列模型從最初的 LLM 版本發展到最新的 V3 和 R1 版本&#xff0c;在架構設計、訓練效率和推理能力方面不斷取得進步。以下是各版本按時間倒序的詳細信息&#xff1a; 1. DeepSeek-R1 發布時間&#xff1a;2025年1月 論文標題&#xff1a;DeepSeek-R1: Incentivizi…

HTTP SSE 實現

參考&#xff1a; SSE協議 SSE技術詳解&#xff1a;使用 HTTP 做服務端數據推送應用的技術 一句概擴 SSE可理解為&#xff1a;服務端和客戶端建立連接之后雙方均保持連接&#xff0c;但僅支持服務端向客戶端推送數據。推送完畢之后關閉連接&#xff0c;無狀態行。 下面是基于…

推薦一款AI大模型托管平臺-OpenWebUI

推薦一款AI大模型托管平臺-OpenWebUI 1. OpenWebUI 1. OpenWebUI什么? 官網地址&#xff1a;https://openwebui.com/ GitHub地址&#xff1a; https://github.com/open-webui/open-webui Open WebUI 是一個可擴展、功能豐富且用戶友好的自托管 AI 平臺&#xff0c;旨在完全離…

js中常用方法整理

數據類型 typeOf()Number&#xff08;&#xff09;parseInt()parseFloat()- * / %檢測數據類型轉換為數字轉換為整數類型轉換為浮點類型非加法的數字運算toString()Boolean()String()轉換為字符串&#xff0c;不能轉換undefined/null字符串拼接轉換為布爾類型轉換為字符串、所有…

java練習(33)

ps:題目來自力扣 最強回文子串 給你一個字符串 s&#xff0c;找到 s 中最長的 回文 子串。 class Solution {public String longestPalindrome(String s) {if (s null || s.length() < 1) {return "";}int start 0, end 0;for (int i 0; i < s.length();…

本地部署DeepSeek大模型

環境&#xff1a;nuc工控機器 x86架構 ubuntu20.04 1、瀏覽器打開Download Ollama on Linux&#xff0c;復制命令。 2.打開終端&#xff0c;輸入命令。 curl -fsSL https://ollama.com/install.sh | sh 等待安裝&#xff0c;安裝完成后&#xff0c;終端輸入 ollama&#xff…

Nginx 常用命令和部署詳解及案例示范

一、Nginx常用命令 1.1 啟動 Nginx 要啟動 Nginx 服務&#xff0c;可以使用以下命令&#xff1a; sudo systemctl start nginx1.2 停止 Nginx 如果需要停止 Nginx 服務&#xff0c;可以使用以下命令&#xff1a; sudo systemctl stop nginx1.3 重啟 Nginx 在修改了 Nginx…

2025鴻蒙開發面試題匯總——通俗易懂

問題和通俗易懂的答案&#xff0c;覆蓋鴻蒙開發的核心知識點和實際場景&#xff0c;方便面試時快速評估候選人能力&#xff1a; 一、基礎概念&#xff08;必問&#xff09; 鴻蒙和安卓最大的區別是什么&#xff1f;舉個實際例子。 答案&#xff1a;鴻蒙是“分布式操作系統”&am…

Kotlin 優雅的接口實現

1. 日常遇到的冗余的接口方法實現 日常開發中&#xff0c;經常會要實現接口&#xff0c;但是很多場景中&#xff0c;只需要用到其中一兩個方法&#xff0c;例如 ActivityLifecycleCallbacks&#xff0c;它有很多個接口需要實現&#xff0c;但是很多時候我們只需要用到其中的一…

Java List 自定義對象排序 Java 8 及以上版本使用 Stream API

從 Java 8 開始&#xff0c;你可以使用 Stream API 對 List 進行排序&#xff0c;這種方式更加簡潔和靈活。 以下是一個示例代碼&#xff1a; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;// 自定…

【Spring詳解一】Spring整體架構和環境搭建

一、Spring整體架構和環境搭建 1.1 Spring的整體架構 Spring框架是一個分層架構&#xff0c;包含一系列功能要素&#xff0c;被分為大約20個模塊 Spring核心容器&#xff1a;包含Core、Bean、Context、Expression Language模塊 Core &#xff1a;其他組件的基本核心&#xff…

Linux內核讀寫鎖與讀寫信號量的區別及選用

在Linux內核中&#xff0c;讀寫鎖&#xff08;rwlock_t&#xff09;和讀寫信號量&#xff08;struct rw_semaphore&#xff09;是兩種不同的同步機制&#xff0c;適用于不同的場景。以下是它們的區別和選用建議&#xff1a; 核心區別 特性讀寫鎖 (rwlock_t)讀寫信號量 (struct…

用openresty和lua實現壁紙投票功能

背景 之前做了一個隨機壁紙接口&#xff0c;但是不知道大家喜歡對壁紙的喜好&#xff0c;所以干脆在實現一個投票功能&#xff0c;讓用戶給自己喜歡的壁紙進行投票。 原理說明 1.當訪問http://demo.com/vote/時&#xff0c;會從/home/jobs/webs/imgs及子目錄下獲取圖片列表&…

LLaMA 3.1 模型在DAMODEL平臺的部署與實戰:打造智能聊天機器人

文章目錄 前言 一、LLaMA 3.1 的特點 二、LLaMA3.1的優勢 三、LLaMA3.1部署流程 &#xff08;一&#xff09;創建實例 &#xff08;二&#xff09;通過JupyterLab登錄實例 &#xff08;3&#xff09;部署LLaMA3.1 &#xff08;4&#xff09;使用教程 總結 前言 LLama3…

【Python爬蟲(25)】解鎖Python爬蟲:數據存儲的最優選擇與高效策略

【Python爬蟲】專欄簡介&#xff1a;本專欄是 Python 爬蟲領域的集大成之作&#xff0c;共 100 章節。從 Python 基礎語法、爬蟲入門知識講起&#xff0c;深入探討反爬蟲、多線程、分布式等進階技術。以大量實例為支撐&#xff0c;覆蓋網頁、圖片、音頻等各類數據爬取&#xff…

【復現DeepSeek-R1之Open R1實戰】系列8:混合精度訓練、DeepSpeed、vLLM和LightEval介紹

這里寫目錄標題 1 混合精度訓練1.1 FP16和FP321.2 優點1.3 存在的問題1.4 解決辦法 2 DeepSpeed3 vLLM3.1 存在的問題3.2 解決方法3.2.1 PagedAttention3.2.2 KV Cache Manager3.2.3 其他解碼場景 3.3 結論 4 LightEval4.1 主要功能4.2 使用方法4.3 應用場景 本文繼續深入了解O…

使用 FFmpeg 剪輯視頻指南

FFmpeg 是一個功能強大的多媒體處理工具&#xff0c;可以進行視頻和音頻的剪輯、合并、轉碼等操作。本文將詳細介紹如何使用 FFmpeg 進行視頻剪輯&#xff0c;并通過實例幫助你快速掌握剪輯技巧。我們會從最基礎的剪切功能講起&#xff0c;再延伸到一些高級操作&#xff0c;如指…

【分布式理論15】分布式調度1:分布式資源調度的由來與過程

文章目錄 一、操作系統的資源調度&#xff1a;從單核到多核二、 分布式系統的資源調度&#xff1a;從單臺服務器到集群三、 固定資源映射四、 動態資源分配&#xff1a;靈活的任務-資源匹配五、 資源調度過程&#xff1a;從申請到執行 本文主要討論主題&#xff1a; 從操作系統…