Linux中vim編輯命令

来源:https://www.cnblogs.com/t-ym/archive/2019/10/03/11617420.html
-Advertisement-
Play Games

vim 功能 : 一個強大的文本編輯器 語法格式 :vim [ 選項 ] / 路徑 / 文本文件名 命令格式: vi [ 選項 ] [ 文件名 ] +num 打開某個文件直接跳轉到 num 行 -b 以 binary 方式打開文件 , 用於編輯二進位文件 -R 以只讀方式打開文件 一.VIM 基礎使 ...


vim

  功能 : 一個強大的文本編輯器
   語法格式 :vim [ 選項 ] / 路徑 / 文本文件名 命令格式: vi [ 選項 ] [ 文件名 ]
   +num 打開某個文件直接跳轉到 num 行
   -b 以 binary 方式打開文件 , 用於編輯二進位文件
   -R 以只讀方式打開文件

一.VIM 基礎使用
    vim 編輯器共有三種工作模式

command line 主要做替換 , 刪除 , 複製等工作。 input mode 主要做內容編輯
last line mode 主要對文件進行編輯操作 , 如保存文件

   不同模式之間的切換

二.命令模式

       在 command mode 執行操作的時候都是先要將游標移動到要 執行命令的地方然後再執行命令 ,

怎麼移動游標呢 ?

   j 游標向下移動
   k 游標向上移動
   h 游標向左移動
   l 游標向右移動

如果你覺得記這些不太方便也可以用小鍵盤上的←↑→↓來代替 G(shift+g) 直接移動到文件末尾

 gg 直接移動到文件頭
 0( 數字鍵 ) 直接移動到行頭
 ^(Shift + 6) 直接到行頭
 $ 直接移動到行末
 PageUp 向上翻一頁
 PageDown 向下翻一頁
 H 將游標移動到當前屏幕的最上 M 將游標移動到當前屏幕的中間 L 將游標移動到當前屏幕的最下
 zz 將游標當前行為基準放在屏幕中間 x 刪除游標所在位置的字元
 X 刪除游標所在位置之前的一個字元 D 從游標開始到行末全部刪除
 dw 刪除游標後的一個單詞 dd 刪除游標所在的一行
 db 刪除游標所在的前一個單詞
 dG 刪除游標所在行到文件末尾的所有內容 dgg 刪除游標所在行到文件頭的所有內容 dk 刪除游標所在行和上面一行
 dj 刪除游標所在行和下麵一行
 u 撤銷剛纔的操作 , 可以連續使用 U 撤銷一行中的所有操作
 ctrl + r 取消撤銷的內容
 ctrl + g 顯示當前編輯文件的信息 . 比如文 件名 , 總共的 行數 , 當前在總數中的百分比等信息
 % 移動到配對的符號如當前游標在 ( 鍵入%可以自動移動到配對的 ) 同樣適用於 [ ] 和 { } 這些功能 在編程的時候特別有用
 . 點 , 這個鍵的功能是重覆最後一次執行的命令
 g~ 這個功能非常有意思 ,g~ 能將當前行的大小寫轉換
 J 這個鍵的功能是將游標當前行和下一行合併	註 : 這 個鍵不能加上數字
 r 替換游標所在的字元
 R 連續替換
 y 複製 , 如 yw 複製一個單詞 yy 複製一行
 p 粘貼 ( 游標後 ) P 粘貼 ( 游標前 )

 

VIM 基礎使用在命令行中有一個 v 鍵: 這個鍵是用來代替滑鼠用的。 v 的意思是‘可視’的意思 , 按過 v 鍵以後再使用方向鍵便可以象滑鼠那樣選中文字 , 然後可以對 選中的文字進行操作。
大寫 V 鍵:這個鍵是用來選擇某個行
ctrl + v 來選擇某個列

(1)VIM的查找
    在命令模式中 按 / 進入搜索模式 這裡的搜索使用的是正則表達式 , 如果要查找 .*[]^%/\?~$ 這些 具有特殊含義的字元需要在這些字元前加上 \ 轉義符。 精確查找
   比如 the 需要用 /\<the\>來查找 按 n 繼續向下搜索 ,
   按 N 返回上一個搜索。

(2)命令模式切換輸入模式
  

    a 在游標後開始插入 ( 相當於 insert 鍵 ) 
    i 在游標前開始插入
    A 在游標所在行末尾開始插入
    I 在游標所在行首開始插入 o 在游標所在行下插入一行 O 在游標所在行上插入一行 R 進入替換模式
    s 替換游標所在字元後開始編輯 S 刪除游標所在行後開始編輯

  

(3)末行模式 last line mode
    在命令模式下按下 : (shift+;) 鍵 , 就進入了末行模式。
   

    :w 保存文件
    :q 退出 vi 編輯
    :wq 保存文件並退出 vi 編輯器 ( 無論是否修改了文件 )
    :x 保存退出
    ZZ 保存退出
    :e 不離開 VI ,開始編輯一個新的文件
    :w <filename-new> 存儲當前編輯的文件到一個新的文件(另存 為)
    :x 文件僅被修改時才寫入 並退出 , 未寫入則直接退出
    :q! 這個 ! 具有強制的作用 , 因為在 vi 中預設不保存文件是無法 退出 vi 編輯器的 , 主要為了防止意外退出。
    :w! 強制保存 , 有的時候文件是只讀屬性的時候 ,可以用這個方式 來保存 , 當然前提是文件所有者必需是當前用戶。

 

(4)末行模式 查找和替換 查找格式
    :範圍 命令/查找字串/替換字串/ 參數
    查找範圍:
    % 所有的行
    $ 文件最後一行
    . 游標所在行
    1,50 1-50行

命令:
  查找的命令全稱是 substitute但為了方便期間可以使用簡寫 sub 或者乾脆用 s 這三個單詞都可以用做查找的命令查找。查找的內 容中可以使用正則表達式 , 這樣可以讓查找方式非常靈活多變 替換的內容當然就是替換的內容了最後的參數有很多 , 可以同時 使用多個參數
  g 替換所有查找到的內容
  c 每次替換的時候都手工確認 y 同意 n不同意仍然繼續替換, q 退出替換
  i 忽略大小寫
  I 不忽略大小寫
  e 不顯示出錯信息

  示例:

 :% s/root/--linux--/g
 :% s/\/usr\/bin/\/home/g
 :% s/^/linux/g
 :% s/$/s/g

精確查找替換     :% s/\<bin\>/----------------/g

 :set nu 顯示行號 , 打開這個功能以後會在每一行的最左面顯示 行號 , 行號不算在文件本身
 :set nonu 關閉顯示行號的功能
 :set nohlsearch 消除搜索的記號
 :set ic 忽略大小寫 , 主要是為了方便搜索
 :set noic 不忽略大小寫
 :syntax on 打開色彩支持 , 在 linux 中編輯文件和編輯程式源代 碼等工作都是在 vim 中完成的 , 打開色彩支持可以在查看或編寫 程式的時候發現語法等錯誤
 :syntax off 關閉色彩支持

  

 


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

-Advertisement-
Play Games
更多相關文章
  • 點這裡進入ABP開發手記目錄 創建視圖模型 在展示層(即JD.CRS.Web.Mvc)的Models下新建文件夾Course //用以存放Course相關視圖模型 在JD.CRS.Web.Mvc/Models/Course下新建兩個視圖模型 只讀模型 CourseListViewModel.cs / ...
  • 點這裡進入ABP開發手記目錄 創建目錄 在應用層(即JD.CRS.Application)下新建文件夾Course //用以存放Course相關應用服務 在JD.CRS.Application/Course下新建文件夾Dto //用以存放Course相關數據傳輸對象 創建數據傳輸對象 在JD.CRS ...
  • 點這裡進入ABP開發手記目錄 設置資料庫 在基礎設施層(即JD.CRS.EntityFrameworkCore)打開資料庫環境設置 JD.CRS.EntityFrameworkCore/EntityFrameworkCore/CRSDbContext.cs添加一行 public DbSet<Cour ...
  • VBA 中的用戶窗體就是指帶 UI 的用戶界面,在運行的時候會單獨彈出一個視窗,類似於在 windows 系統中運行的一個可執行程式一樣(這個說法不太嚴謹,因為可執行程式也可能是只有命令視窗而沒有 UI 的)。再具體一點,就是一個視窗界面當中,有可能會包含有文本框、覆選框、單選按鈕、下拉列表,就如在 ...
  • 點這裡進入ABP開發手記目錄 創建實體 在領域層(即JD.CRS.Core)下新建文件夾Entitys //用以存放實體對象添加一個實體類Course.cs //課程信息 1 using Abp.Domain.Entities; 2 using Abp.Domain.Entities.Auditin ...
  • 前陣子一直期待.net core3.0正式版本的出來,以為這個版本出來,Winform程式又迎來一次新生了,不過9.23日出來的馬上下載更新VS,創建新的.net core Winform項目,發現並沒有Winform窗體設計器。而微軟目前則是通過插件的方式,讓我們單獨下載Winform設計器,這個... ...
  • 1.Autofac基礎使用 參考: https://www.cnblogs.com/li150dan/p/10071079.html 2.ASP.NETCore 3.0 Autofac 容器替換 需要引用:Autofac, Autofac.Extensions.DependencyInjection ...
  • 更改Ubuntu下預設Python版本 首先查看系統內有哪些版本的Python ls /usr/bin/python 查看當前python版本 python --version 基於用戶修改預設版本 想要為某個特定用戶修改 Python 版本,只需要在其 home 目錄下創建一個 alias(別名) ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...