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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...