linux-vim編輯器

linux-vim編輯器

  • 前言
  • 一、命令模式
    • 1. 跳轉功能
    • 2. 文本編輯
    • 3. 模式切換
  • 二、輸入模式
    • 1. 進入輸入模式
    • 2. 快捷鍵
  • 三、末行模式
    • 1. 進入末行模式
    • 2. 文件操作
    • 3. 查找與替換
    • 4. 行操作
  • 四、替換模式
  • 五、可視模式
    • 1. 進入可視模式
    • 2. 文本操作
  • 六、相關配置


前言

vim - Vi IMproved, a programmer’s text editor
vi的升級版,程序員文本編輯器(工具)

作用:

  1. 在linux里新建文本文件,修改配置文件
    配置文件:configure file =》config
    作用:給某個程序傳遞參數
    ssh 是一個提供遠程登錄遠程控制的服務–》運行起來后的進程叫sshd ssh daemon

  2. 寫程序: c,python,go,java,html等
    集成開發工具:功能比較多,語法檢查,高亮,直接調用背后環境去運行程序,安裝軟件包等
    pycharm
    goland
    IDE

啟動:vim 文件名 或 vi 文件名(若文件不存在則創建)

退出

  • q 退出(未修改時)
  • q! 強制退出,不保存修改
  • wq 或 x 保存并退出

一、命令模式

啟動后的默認模式,也是 Vim 的核心操作模式。主要用于導航、編輯命令的執行和模式切換

1. 跳轉功能

操作類型操作鍵功能
光標方向移動上下左右方向鍵或
h(左) j(下) k(上) l(右)
移動光標位置
翻頁Page Down 或 Ctrl+F
Page Up 或Ctrl+B
向下翻動一整頁內容
向上翻動一整頁內容
行內快速跳轉Home鍵或 “^” 或數字“0”
End鍵或“$”鍵
跳轉至行首
跳轉至行尾
行間快速跳轉1G或者gg
G
#G
跳轉到文件的行首
跳轉到文件的末尾行
跳轉到文件中的第#行
文件內容查找輸入 /word
n 下一個
N 上一個
查找word

2. 文本編輯

  • 刪除
    刪除單個字符: x、delete

    刪除行:dd
    3dd

    d^ 刪除當前光標之前到行首的所有字符 ^:行首
    d$ 刪除當前光標之前到行尾的所有字符 $:行尾
    dw 刪除一個單詞,以空格冒號等符號

  • 復制
    yy 復制一行
    2yy 復制兩行

  • 粘貼
    p 往下粘貼
    P 往上粘貼

  • 撤銷
    u -->undo

  • 恢復
    Ctrl+r --> redo

  • 保存
    ZZ 保存當前文件并退出


3. 模式切換

  1. 進入命令模式
    vim 文件名 ???默認進入命令模式
    ESC鍵 或 Ctrl + [ ?????從其他模式返回

  2. 進入輸入模式
    a、i 、o 等鍵

  3. 進入末行模式
    : 鍵

  4. 進入可視模式
    v 鍵

  5. 進入替換模式
    R 鍵


二、輸入模式

用于文本的直接輸入,類似于常規編輯器的狀態

1. 進入輸入模式

i -> 在光標前插入 insert
a -> 在光標后插入
o -> 在光標所在行下新起一行并插入
O -> 在光標所在行上方新起一行并插入

I -> 在當前行的行首(第一個非空字符)插入
A -> 在當前行的行尾插入

s -> 刪除當前字符并進入插入模式
S -> 刪除整行并進入插入模式(等價于 cc)


2. 快捷鍵

Ctrl+h 刪除前一個字符(等價于 Backspace)
Ctrl+w 刪除前一個單詞
Ctrl+u 刪除至行首
Ctrl+n 自動補全下一個匹配項
Ctrl+p 自動補全上一個匹配項


三、末行模式

用于執行全局性命令的重要模式

1. 進入末行模式

在命令模式下按下 :(冒號)
-> 底部會顯示 : 提示符


2. 文件操作

w -> 保存當前文件
w 新文件名 -> 另存為新文件
q -> 退出(僅當文件未修改時有效)
q! -> 強制退出,不保存修改
wq 或 x -> 保存并退出

e 文件名 -> 打開新文件(放棄當前修改)
e! -> 重新加載當前文件(丟棄所有修改)
r 文件路徑 -> 導入文件
saveas 新文件名 另存為并繼續編輯新文件


3. 查找與替換

:/sbin -> 向下查找sbin這個關鍵詞并高亮顯示
:?sbin -> 向上查找
n 顯示下一個
N 顯示上一個
取消高亮:查找一個不存在的word

: s /old/new/ 替換當前行第一個old為new
: s /old/new/g 整行替換
: 3,5s /old/new/ 替換3到5行
: %s /old/new/ 全部替換
: s /old//g 刪除

: s /old/new/c 在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認 confirm
替換為 (y/n/a/q/l/E/Y)?
y 替換
n 不替換
a 全部替換


4. 行操作

: 1 跳轉到第1行
: 5 跳轉到第5行
: $ 跳轉到最后一行

set nu(number) -> 顯示行號
set nonu -> 不顯示行號


四、替換模式

用于直接替換現有文本而不是插入

R -> 進入替換模式(覆蓋式輸入),按ESC退出
r -> 替換單個字符后返回(如 ra 將當前字符替換為 a)


五、可視模式

用于選中文本塊,以便進行復制、刪除、替換等批量操作

1. 進入可視模式

v -> 可視模式 visual --》選擇一部分
V -> 可視行模式 VISUAL line --》選擇行
ctrl+v -> 可視塊模式 VISUAL block

2. 文本操作

d 刪除選中文本(剪切到寄存器)
y 復制選中文本到寄存器
c 刪除選中文本并進入插入模式
~ 切換選中文本的大小寫
p 用寄存器內容替換選中文本

在選區內按 :
vim 會自動添加 :‘<,’> 前綴,表示對選區執行命令,命令操作同末行模式


六、相關配置

/root/.vimrc 可以給vim傳遞參數

vim /root/.vimrc
set nu ?# 顯示行號
set cursorline ?# 高亮當前行
set ts=4 ?# Tab寬度為4個空格

合理配置 .vimrc,可以將 vim 定制成適合自己的高效編輯器

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

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

相關文章

SQL關鍵字三分鐘入門: 表結構管理與分區設計。(ALTER、MODIFY、CHANGE、DEFAULT、VALUES、LESS THAN、RANGE)

前面我們已經學習了如何查詢數據&#xff08;SELECT&#xff09;、篩選數據&#xff08;WHERE&#xff09;等操作。現在我們要進入數據庫的另一個重要領域 —— 表結構管理與分區設計。 本文帶你快速認識以下關鍵字&#xff1a; ? ALTER? MODIFY? CHANGE? DEFAULT? VALU…

深度剖析:RTTI輕量框架實現原理與架構(C++ 17 高級編程)

&#x1f680; C RTTI反射系統深度設計文檔 &#x1f30c; 核心架構圖 #mermaid-svg-aWkaWoFklq1ylap6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aWkaWoFklq1ylap6 .error-icon{fill:#552222;}#mermaid-svg-a…

03-D3.js SVG text標簽?

Data Visualization D3.js ? SuperHiLearn how to create interactive, engaging experiences using HTML, CSS, SVG and Javascript.https://www.superhi.com/catalog/data-visualization-with-d3 text - SVG&#xff1a;可縮放矢量圖形 | MDNtext元素定義了一個由文字組成…

Python 使用Gitlab Api

代碼 REST API 見自帶幫助文檔 python 安裝python-gitlab pip install --upgrade python-gitlab使用API 參考&#xff1a;https://python-gitlab.readthedocs.io/en/stable/api-usage.html import gitlab# anonymous read-only access for public resources (GitLab.com…

中醫體質識別:理論、方法與應用的簡要綜述

中醫體質識別&#xff1a;理論、方法與應用的簡要綜述 摘要 中醫體質識別是中醫“治未病”及個性化診療的關鍵環節。本文系統闡述中醫體質識別&#xff0c;涵蓋理論基礎、常見體質類型、識別方法、現代技術應用及臨床實踐。中醫體質理論源遠流長&#xff0c;《黃帝內經》奠定…

稀疏表原理及應用場景

1 概述 稀疏表&#xff08;Sparse Table&#xff0c;ST&#xff09;是一種用于高效解決 靜態區間查詢&#xff08;Range Query&#xff09; 問題的數據結構&#xff0c;主要用于 可重復貢獻問題&#xff08;Idempotent Range Queries&#xff09;&#xff0c;例如區間最小值&a…

【深度學習與機器學習的區別】從本質到應用的全景對比

目錄 前言 一、三者關系&#xff1a;深度學習是機器學習的子集 1.1 概念關系 1.2 類比理解&#xff1a;動物 vs 哺乳動物 1.3 舉個例子更清楚 1.4 為什么“機器學習 ≠ 深度學習”&#xff1f; 1.5 最容易搞混的地方 二、核心區別總覽&#xff08;對比表&#xff09; …

Masscan常用命令詳解

一、工具介紹 Masscan是一款開源、高速的網絡端口掃描工具&#xff0c;設計目標是實現最快的掃描速度。它能夠在極短的時間內完成大規模的網絡掃描&#xff0c;適用于互聯網級別的掃描任務。它采用異步傳輸和自定義TCP/IP協議棧技術&#xff0c;最快可實現每秒160萬數據包的掃…

STM32的內部RC與外部晶振電路

內部RC是“能用”&#xff0c;外部晶振是“用得準”。 一、STM32芯片內部的“晶振電路”是什么&#xff1f; STM32內部確實集成了兩個RC&#xff08;電阻-電容&#xff09;振蕩器&#xff1a; HSI&#xff08;高速內部振蕩器&#xff09;&#xff1a;通常8MHz&#xff0c;精…

為OneCode 開發TRea 開發插件,從環境搭建到生態融合

作為 AI 原生開發環境&#xff0c;TRea 的插件體系支持開發者基于其核心能力&#xff08;如自然語言代碼生成、AI 代碼分析&#xff09;進行功能擴展。本文以開發一個 "OneCode 組件生成插件" 為例&#xff0c;詳解如何通過 TRea 開放接口實現自定義功能&#xff0c;…

Spring JDBC配置與講解

目錄 一、Spring JDBC概述1、Spring JDBC需要配置的依賴2、Spring配置項文件配置 二、Spring JDBC的使用1、Spring JDBC的增加操作2、Spring JDBC的修改操作3、Spring JDBC的刪除操作4、Spring JDBC的查詢操作 三、Spring JDBC的事務1、xml的形式進行事務2、Transactional注解 …

【AI智能體】Spring AI MCP 服務常用開發模式實戰詳解

目錄 一、前言 二、MCP 介紹 2.1 MCP是什么 2.2 MCP 核心特點 2.3 Spring AI MCP 介紹 2.3.1 Spring AI MCP架構 2.3.2 Spring AI MCP分層說明 2.4 兩種模式介紹 三、本地開發SSE模式 3.1 搭建mcp-server 3.1.1 導入工程核心依賴 3.1.2 添加配置文件 3.1.3 提供兩個…

OpenStack 入門與實踐

一、云計算概述 1.1 云計算的定義與本質 云計算&#xff08;Cloud Computing&#xff09;是一種基于網絡的超級計算模式&#xff0c;它能夠根據用戶的不同需求&#xff0c;動態提供所需的計算資源、存儲資源和網絡資源等。這種模式就像我們日常生活中使用水電煤氣一樣&#x…

AntV L7入門教程

以下教程將系統地介紹 AntV?L7 的核心 Scene 類用法&#xff0c;涵蓋實例化、地圖配置、視圖操作、圖層管理、事件監聽及資源銷毀等常用 API&#xff0c;并為每個方法給出完整示例代碼。所有示例均基于官方 API 文檔 ([l7.antv.antgroup.com][1])。 一、安裝與引入 # 安裝 L7…

【邊緣計算】場景

工業互聯網 對現場采集的數據進行數據預處理&#xff0c;將現場有用的信息提取出來實時上傳給平臺&#xff0c;為平臺大大減輕了處理的工作量。 匯聚現場數據統一接口上傳數據到云端&#xff0c;大大提高系統多樣部署的安全性&#xff0c;解決現場數據跨域訪問的問題。制造企業…

【FPGA學習】DDS信號發生器設計

目錄 一、設計原理與準備? 1.1 DDS 原理? 1.2 IP 核學習與準備?&#xff1a;FPGA開發中常用IP核——ROM/RAM/FIFO 2、ROM文件的設置 1.3 開發環境搭建? 二、DDS 信號發生器設計實現 2.1 系統架構設計? 2.2 代碼編寫與模塊實現? 三、測試結果與總結? 參考文獻&…

pyqt 簡單條碼系統

生產數據管理系統說明 系統概述 這是一個基于PyQt5和pyodbc開發的生產數據管理系統&#xff0c;主要用于管理生產過程中的物料綁定和查詢操作。系統提供了上料綁定和下料查詢功能&#xff0c;支持與SQL Server數據庫交互&#xff0c;實現數據的插入、查詢、更新和刪除操作。界…

【unitrix】 4.1 類型級加一操作(Add1.rs)

一、原碼 這段代碼實現了一個類型級的加一操作(Add1 trait)&#xff0c;用于在Rust的類型系統中進行數值加一運算。 //! 加一操作特質實現 / Increment operation trait implementation //! //! 說明&#xff1a; //! 1. Z0、P1,、N1 1&#xff0c;常規計算 //! 2. …

git工作中常用

1.管理本地文件 git init//初始化生成一個本地倉庫 git add * //添加到暫存區 git commit–m “message” //提交到本地倉庫 2.刪除本地分支 git branch -d local_branch_name3.隱藏及解除隱藏 git stashgit stash pop4.遠程新建分支&#xff0c;在本地簽出時候怎么看到 …

Golang 中接口嵌套的詳細說明和使用示例

在 Go 語言中&#xff0c;接口嵌套&#xff08;也稱為接口組合&#xff09;是一種強大的特性&#xff0c;它允許你通過組合現有接口來創建新的接口。這種方式遵循了 Go 的組合優于繼承的設計哲學。 接口嵌套的基本概念 接口嵌套是指在一個接口中嵌入其他接口&#xff0c;從而…