linux文本編輯器-VIM基本使用方法

来源:http://www.cnblogs.com/yuezhimi/archive/2017/05/04/6806570.html
-Advertisement-
Play Games

vim [OPTION]... FILE... +/PATTERN:打開文件後,直接讓游標處於第一個被PATTERN匹配到的行的行首vim + file 直接打開file,游標在最後一行 三種主要模式: 命令模式:移動游標,剪切粘貼等 插入模式:編輯,修改文本 擴展模式:保存退出等 模式轉換: a ...


  vim [OPTION]... FILE...

+/PATTERN:打開文件後,直接讓游標處於第一個被PATTERN匹配到的行的行首
vim + file 直接打開file,游標在最後一行

三種主要模式:

         命令模式:移動游標,剪切粘貼等

         插入模式:編輯,修改文本

         擴展模式:保存退出等

模式轉換:

         a       在游標後插入內容

         A       在游標所在行末尾插入內容

         i        從當前游標前插入內容

         I        在游標所在行行首插入內容

         o      在當前游標下插入空行

         O      在當前游標上插入空行

         插入模式-->命令模式   esc

         命令模式-->擴展模式   :、?、/

         擴展模式-->命令模式   esc

vim的打開與退出:

         vim file 若file存在則打開file,若file不存在則新建file

命令模式游標跳轉:

         字間跳轉:

                   h: 左 、 l: 右 、 j: 下 、 k: 上 (支持上下左右鍵)

         單詞間跳轉:

                   w :下一個單詞的詞首

                   e :當前或下一單詞的詞尾

                   b :當前或前一個單詞的詞首

         行內的跳轉:

                   Home  ^       將游標跳轉到本行的行首

                   End   $          將游標跳轉到本行的行尾

                   0                          跳轉到絕對行首

         行間的跳轉: (#代表任意數字)

                   1G=gg      跳轉到文件的首行

                   G                跳轉到文件的尾行

                   #G             跳轉到文件的#行(命令模式)

                   :#  跳轉到文件的#行(末行模式)

    句間移動:

                   ) :下一句 ( :上一句

         段落間移動:

                   }: 下一段 {:上一段

         當前頁跳轉:

                   H:頁首、 M:頁中、 L:頁低

         翻頁移動:

                   PgDn  Ctrl+f 向下翻一頁

                   PgUp  Ctrl+b 向上翻一頁

擴展模式基本操作:

         :q      退出

         :q!   強制退出

         :w     保存

         :wq  保存退出 = ZZ = :x

         :X      加密

         :wq!   強制保存退出

         :! 命令    在vim中執行外面命令

         :e file        編輯file

         :w file       將當前文件另存為file

         :r file         讀入file文件的內容

$1$yyzOv8eO$a0q8BUF80SGcJTy8hx0hy/


:r!openssl passwd -1     ##擴展模式使用外面命令生成加密字元串讀入到文件中

命令模式字元編輯:

         x   刪除游標處的字元;

         #x  刪除游標處起始的# 個字元

         xp  交換游標所在處的字元及其後面字元的位置

         ~   轉換大小寫

         r   替換游標所在處的字元

    R  進入替換模式

         d   刪除命令,可結合游標跳轉字元,實現範圍刪除;

         d$  刪除到行尾

         d^  刪除到非空行首

         d0  刪除到行首

         dd  刪除游標所在行

         #dd 刪除#行

    dG  刪到尾行

    dgg 刪到首行

         yy     複製當前游標所在行,(支持y$、y0、y^等)

         #yy   複製當前游標向下#行

         p       粘貼

         c      修改,(支持y$、y0、y^等)

         J        合併當前行和下一行

         u       取消最近一次的操作,能多次使用

         U      取消當前行所有的操作

         ctrl+r        對使用u命令撤銷操作進行恢復

         .        重覆前一個操作

         n.      重覆前一個操作n次

擴展模式地址定界:

         :2,+3            表示2到5行

         :.                      點表示當前行

         :$                    表示最後一行

         :%                   表示全文,相當於1,$

         /p1,/p2              第一次被p1匹配到的行到第一次被p2匹配到的行

擴展模式字元串查找:

         /world      從上向下查找world

         ?world 從下向上查找world

         n       定位下一個匹配的字串

         N      定位上一個匹配的字串 

擴展模式字元串替換:

         :s/old/new                將當前行中查找到的第一個字元“old” 串替換為“new”

         :s/old/new/g             將當前行中查找到的所有字元串“old” 替換為“new”

         :#,#s/old/new/g        在行號“#,#”範圍內替換所有的字元串“old”為“new”

         :%s/old/new/g           在整個文件範圍內替換所有的字元串“old”為“new”

         :s/old/new/c            在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認

    :%s/^\s*//g    刪除行首空格

    :g/^$/d      刪除空行

    :5,10s/^/#/g   在5到10行行首插入#號註釋 

可視話模式:

  允許選擇的文本塊,可代替滑鼠。突出顯示的文字可以被刪除,複製,變更,過濾,搜索/替換等

    v面向字元

    V面向行
    ctrl-v 面向塊

多文件模式:

         vim file1 file2 file3 ...

         :next  下一個

         :prev  前一個

         :first  第一個

         :last  最後一個

         :wall  保存所有

         :qall  退出所有

         :wqall

多文件視窗:

         vim -o file1 file2 ...

                   -o    水平分割

                   -O    垂直分割

         視窗間切換:ctrl+w

單文件視窗:

         Ctrl+w,s: split,  水平分割

         Ctrl+w,v: vertical,  垂直分割

         ctrl+w,q :取消相鄰視窗

         ctrl+w,o: 取消全部視窗

         : wqall 退出

定製vim工作特性:

         配置文件:

                   全局:/etc/vimrc

                   個人:~/.vimrc

1、行號:

         永久修改:

                   在/root/.vimrc文件中添加

                            set nu

                            :set nonu 去掉行號

         臨時顯示行號:(擴展模式)

                   :set nu               顯示行號

                   :set nonu 不顯示行號

2、括弧成對匹配:

         匹配:set sm

         取消:set nosm

3、自動縮進:

         啟用:set ai

         禁用:set noai

4、高亮搜索:

         啟用:set hlsearch

         禁用:set nohlsearch

5、語法高亮:

         啟用:syntax on

         禁用:syntax off

6、忽略字元的大小寫

         啟用:set ic

         不忽略:set noic

7、文件格式:

         啟用: fileformat=unix

         不忽略:  fileformat=dos

8、設置文本寬度

         :set textwidth=65 (vim only)

         :set wrapmargin=15

 vim的寄存器:

  有26個命名寄存器和1個無命名寄存器,常存放不同的剪貼版內容,可以不同會話間共用。

   有10個數字寄存器,用0,1,…,9表示,0存放最近複製內容,1存放最近刪除內容。當新的文本變更和刪除時,1轉存到2,2轉存到3,以此類推。數字寄存器不能在不同會話間共用。

 


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

-Advertisement-
Play Games
更多相關文章
  • 找到版本庫目錄(在安裝svnserver時指定的目錄),如下圖指定了一個版本庫的hooks 在其中創建post-cmmit.bat文件(可先創建post-cmmit.txt再修改尾碼名為bat)。 其中內容寫入: @echo off "C:\Program Files\VisualSVN Serve ...
  • 前言: 糾正網上一些錯誤的博文,真的害人不淺,按照他們的說法,dubbo-admin在jdk1.8的版本下無法啟動註冊中心,需要去github下載阿裡提供的源碼,然後install進本地倉庫並打包成war。然後才能搬去centos系統下結合tomcat運行起來。 照著上面那種方法做了整整兩個晚上,一 ...
  • 目標: Tomcat+Nginx+Memcached Ubuntu 16.04 64位測試通過 動靜分類、負載均衡、集群、Javolution序列化、高性能、高可用 配置環境(目前均為最新穩定版): jdk-8u131-linux-x64 apache-tomcat-8.5.14 nginx-1.1 ...
  • 根據自己的理解繪製了存儲管理的知識體系圖,其中的一些演算法沒有詳細介紹,之後有時間會補上 ...
  • 這是前兩天做的Linux 面試題 第一部分:選擇題(每題2分 共50分) 1.在創建Linux分區時,一定要創建( D )兩個分區 A. FAT/NTFS B. FAT/SWAP C. NTFS/SWAP D.SWAP/根分區 2. 當登錄Linux時,一個具有唯一進程ID號的shell將被調用,這 ...
  • 一.cobbler簡介 運維自動化包括標準化、工具化、Web化、服務化、智能化等幾個不同的層級,在一家規模稍大、擁有伺服器上千台甚至是幾萬台的生產環境中,想要真正實現運維自動化,工具化系統安裝流程、統一系統安裝規範,是其中最不能忽略的重要環節。普通的自動化部署可以採用pxe+dhcp+tftp配合k ...
  • Rundll32命令詳解 文件作用:執行32位DLL文件中的內部函數 位置:X:(當前系統分區)\windows\system32 命令語法: Rundll32.exe DLLname,Functionname [Arguments] 實例: RunDll32.exe InetCpl.cpl,Cle ...
  • 一些概念 Nginx ("engine x") 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0發佈於2004年10月4日。其將源代碼以類BSD許可證的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...