Vim編輯器基礎

来源:https://www.cnblogs.com/shamobus/archive/2018/08/15/9482424.html
-Advertisement-
Play Games

Vim編輯器基礎 Vim模式 Vim模式轉換 vim 文件名 打開文件 關閉文件 移動游標(編輯模式) 翻屏 刪除單個字元 刪除命令:d 粘貼命令 p 複製命令 y 修改:先刪除內容,在轉換為輸入模式 替換:r 撤銷編輯操作 u 重覆前一次編輯操作 可視化操作 查找 查找並替換 使用vim編輯多個文 ...


Vim編輯器基礎

vi:Visual Interface
vim:VI iMproved

Vim模式

1、編輯模式(命令模式)
    只能下達命令,不能鍵入字元
2、輸入模式
    鍵入字元
3、末行模式
    左下角有冒號,可以鍵入命令執行

Vim模式轉換

vim 文件名

編輯-->輸入:
    i:在當前游標所在字元的前面,轉為輸入模式;
    a:在當前游標所在字元的後面,轉為輸入模式;
    o:在當前游標所在行的下方,新建一行,並轉為輸入模式;
    
    I:在當前游標所在行的行首,轉換為輸入模式;
    A:在當前游標所在行的行尾,轉換為輸入模式
    O:在當前游標所在行的上方,新建一行,並轉為輸入模式;
    
輸入-->編輯:
    ESC
    
編輯-->末行:
    :

末行-->編輯:
    ESC,ESC

打開文件

# vim /path/to/somefile  

    vim +# :打開文件,並定位於第#行
    vim + :打開文件,定位至最後一行
    vim +/PATTREN :打開文件,定位至第一次被PATTREN匹配到的行的行首

預設處於編輯模式

關閉文件

1、末行模式關閉文件
    :q 退出
    :wq 保存並退出
    :q! 不保存並退出
    :w 保存 
    :w! 強行保存
    :wq --> :s 
2、編輯模式下退出
    ZZ: 保存並退出

移動游標(編輯模式)

1、逐字元移動:
    h:左
    l:右
    j:下
    k:上
    #h:移動#個字元;

2、以單詞為單位移動
    w:移至下一個單詞的詞首
    e:跳至當前或下一個單詞的詞尾
    b:跳至當前或前一個單詞的詞首
    
    #w: 
    
3、行內跳轉:
    0:絕對行首
    ^: 行首的第一個非空白字元
    $:絕對行尾
    
4、行間跳轉
    #G:跳轉至第#行:
    G:最後一行
    
    末行模式下,直接給出行號即可

翻屏

Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏

Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏

刪除單個字元

x:刪除游標所在處的單個字元
#x:刪除游標所在處及向後的共#個字元 

刪除命令:d

d命令跟跳轉命令組合使用:
    #dw,#de,#db

dd;刪除當前游標所在行
#dd:刪除包括當前游標所在行在內的#行;

末行模式下:
StartADD,EndADDd
    .: 表示當前行
    $:最後一行
    +#:向下的#行 

粘貼命令 p

p:如果刪除或複製為整行內容,則粘貼至游標所在行的下方,如果複製或刪除的內容為非整行,則粘貼至游標所在字元的後面;
P:如果刪除或複製為整行內容,則粘貼至游標所在行的上方,如果複製或刪除的內容為非整行,則粘貼至游標所在字元的前面;

複製命令 y

用法同d命令

修改:先刪除內容,在轉換為輸入模式

c:用法同d命令

替換:r

R:替換模式

撤銷編輯操作 u

u:撤銷前一次的編輯操作
    連續u命令可撤銷此前的n此操作
#u:直接撤銷最近#次編輯操作

撤銷最近一次撤銷操作:Ctrl+r

重覆前一次編輯操作

.

可視化操作

v:按字元選取 
V:按行選取
Ctrl+v:按矩形選取

查找

/PATTERN
?PATTERN
    n 
    N

查找並替換

在末行模式下使用s命令
ADDR1,ADDR2s@PATTREN@string@gi
1、$
%: 表示全文

使用vim編輯多個文件

vim FILE1 FILE2 FILE3
:next 切換至下一個文件
:prev 切換至前一個文件
:last 切換至最後一個文件
:first 切換至第一個文件

退出
:qa 全部退出

分屏顯示一個文件

Ctrl+w,s:水平拆分視窗
Ctrl+w,v:垂直拆分視窗

在視窗間切換游標:
Ctrl+w,ARROW

:qa

分視窗多個文件

vim -o:水平分割顯示
vim -O:垂直分割顯示

將當前文件中部分內容另存為另外一個文件

末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere

將另外一個文件的內容填充在當前文件中

:r /path/to/somefile

跟shell交互

:! COMMAND

高級話題

1、顯示或取消顯示行號
:set number
:set nu

:set nonu

2、顯示忽略或區分字元大小寫
:set ignorecase
:set ic

:set noignorecase
:set noic

3、設定自動縮進
:set autoindent
:set ai
:set noai

4、查找到的文本高亮顯示或取消
:set hlsearch
:set nohlsearch

5、語法高亮
:syntax on
:syntax off

配置文件

/etc/vimrc
~/.vimrc

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • pidof     我們知道每個小孩一齣生就會一個全國唯一的編號來對其進行標識,用於以後上學,辦社保等,就是我們的身份證號。那麼在Linux系統中,用來管理運行程式的標識叫做PID,就是大家熟知的進程ID。那麼如何來找到程式的PID了,那麼就需要用到命令 pidof ,其功能主要 ...
  • 按照網上的命令都為安裝php5-fpm 和 php5-sqlite, 但是發現無法找到軟體,可能是系統版本比較高的緣故,原來的版本已經不支持了。 經過努力華找到如下安裝方法 sudo apt get install php fpm (預設安裝的是php7) sudo apt get install ...
  • 文本文件log.txt中,若某行開頭含有“Modified”字元串,去除之,新的文件放在1.txt中。上述命令在命令行中執行即可。 mark一下 參考 ...
  • 又過了比較長的時間,基本上都是一周一更了,這期我們就來演示Linux系統中OpenSUSE系統的安裝吧! 安裝OpenSUSE系統 系統映像文件下載 OpenSUSE 15下載地址: https://www.7down.com/soft/278533.html https://www.xp510.c ...
  • "高通 sensor 從native到HAL" "高通HAL層之Sensor HAL" "高通HAL層之bmp18x.cpp" 問題現象: 當休眠後,再次打開preesure sensor的時候,會出現隔一段時候後,APK才會出現數據;(數據有時候會很難出現) 問題分析: 從上面幾節中,我們可以知道 ...
  • 項目發佈到阿裡雲伺服器中運行 目前很多人會選擇將項目運行在雲伺服器行,下麵以騰訊雲伺服器為例,註冊完伺服器之後如下圖所示: 1.點擊操作選項的的登錄,就會登錄至雲伺服器。目前此伺服器沒有安裝tomcat,需要我們安裝,可以使用winscp軟體進行上傳,可以上傳已經解壓縮過的文件,也可以上傳未解壓縮過 ...
  • linux啟動時我們會看到許多啟動信息。 Linux系統的啟動過程並不是大家想象中的那麼複雜,其過程可以分為5個階段: 內核的引導。 運行 init。 系統初始化。 建立終端 。 用戶登錄系統。 init程式的類型: SysV: init, CentOS 5之前, 配置文件: /etc/initta ...
  • 1、操作系統:(Operating System 簡稱OS)簡單來說就是一款軟體; ★操作系統是管理和控制電腦硬體與軟體資源的電腦程式,是直接運行在“裸機”上的最基本的系統軟體; ★任何其他軟體都必須在操作系統的支持下才能運行; 2、 操作系統分類: ●按照應用領域 ★桌面操作系統:具有圖形化界 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...