Linux vim編輯器使用詳解

来源:http://www.cnblogs.com/Csharp-Learn/archive/2016/04/04/5351518.html
-Advertisement-
Play Games

在Linux中,主要編輯器為vi或者vim,本文圍繞vim做簡單的講解說明: Linux預設自帶vi(vim)編輯器,其程式包為: vim 編輯器模式切換: 命令模式 、命令行模式、編輯模式 命令模式: 字元操作 i 當前字元之前插入 I 行首插入 a 當前字元之後插入 A 行尾插入 esc 退出當 ...


在Linux中,主要編輯器為vi或者vim,本文圍繞vim做簡單的講解說明:

Linux預設自帶vi(vim)編輯器,其程式包為:

[root@xuegod163 ~]# rpm -qf `which vi`
vim
-minimal-7.2.411-1.8
.el6.x86_64
[root@xuegod163
~]# rpm -qf `which
vim`
vim
-enhanced-7.2.411-1.8.el6.x86_64

vim 編輯器模式切換:

命令模式 、命令行模式、編輯模式

clip_image002

命令模式:

     字元操作

i 當前字元之前插入

I 行首插入

a 當前字元之後插入

A 行尾插入

esc 退出當前模式

o 下一行插入

O 上一行插入

x 向後刪除一個字元 (等同於delete鍵)

X 向前刪除一個字元 (等同於Backspace鍵)

u 撤銷一步

行操作

home鍵或^ 行首

$行尾 end鍵

Ndd 刪除N行(N表示行數,1可忽略)

Nyy 複製N行(N表示行數,1可忽略)

p 將複製行粘貼

擴展:剪切 =先刪除,再粘貼

刪除到行首 d + HOME 或^

刪除到行尾 d + END 或$

詞操作

dw 刪除一個詞,刪除時要將游標移動到這個詞的行首。 另外,如果游標不在行首,則刪除游標之後的字母。

yw 複製一個詞

w 切換單詞

塊操作

大D 或d+$刪至行尾 d+^ 刪至行首

y+$ 複製至尾 y+^ 複製至首

v 模式(多用於shell多行註釋,配置文件也可能會用到

進入v模式:CTRL+V

編程的時候需要進行多行註釋:
1、註釋:ctrl+v 進入列編輯模式

2向下或向上移動游標

3把需要註釋的行的開頭標記起來

4然後按大寫的I

5再插入註釋符,比如"#"。

6再按Esc,就會全部註釋了。

刪除多行註釋:

刪除:再按ctrl+v 進入列編輯模式;向下或向上移動游標;選中註釋部分,然後按d, 就會刪除註釋符號。

VIM命令行模式操作

:w 保存 save
:q 沒有進行任何修改,退出 quit
:q! 修改了,不保存,強制退出
:wq 保存並退出

:wq! 強制保存並退出。

保存:

ZZ

改一個字元: r 再對應文字

 

替換
:%s /this/that 每一行的第一個this被替換成that
:%s /this/that/g 將文本中所有的this替換成that

%表示全文匹配

s替換

this 原內容

that修改後的內容

g一行中所有匹配項,無只替換第一個匹配項

:2,5 s/nologin/login/g #替換第二行到第五行中的nologin

n,m表示指定行號。

/ 查找 :/target n 往下查找,N 往上查找

:set nu/nonu #顯示行號

去消高亮顯示: :noh 或 隨便查找一組沒有的字元

:!ifconfig 調用系統命令

vim中定位到某行:

gg 定位到行首

G 定位到最後一行

#G 定位到某一行

:# 定位到某一行

#gg 定位到某一行

#代表行號

讀取其他文件

:r ./sshd_config.bak

vim打開多個文件:

[root@xuegod163 ~]# vim -O /etc/passwd /etc/hosts

ctrl+WW 在文件之間進行切換

自定義vim

#vim ~/.vimrc

輸入:

set nu

set history=10

除此之外,還有vim游標定位…

活到老學到老,Mark標記,學習筆記

在Linux桌面環境有gedit文本編輯器,圖形化界面(相當於Windows的notepad)


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

-Advertisement-
Play Games
更多相關文章
  • #This script is to parse data file: fun0() { ##[INFO1]a=1 b=2 c=3[INFO2]a=7 b=8 c=9[INFO3]a=x b=y c=z } #! /bin/bashread Info Abc#echo $Infoif [ "$Inf ...
  • Linux守護進程(Daemon)是Linux的後臺服務進程,它脫離了與控制終端的關聯,直接由Linux init進程管理其生命周期,即使你關閉了控制台,daemon也能在後臺正常工作。 一句話,為Linux開發與控制台無關的,需要在後臺長時間不間斷運行的“服務程式”,Daemon技術是非常重要的。 ...
  • 上述的應用筆記中有介紹FX2LP的啟動選項,主要包括I2C啟動和USB啟動。 說白了I2C啟動需要使用外部的EEPROM,USB啟動,只是使用上位機控制軟體將配置程式FX2LP中,不用EEPROM,但是這會掉電易失,固件從USB主機載入到FX2LP內。從外部並行存儲器啟動的方法,不常用,且支持128 ...
  • ...
  • 筆者上一篇博客講解了關於驅動的安裝,筆者使用的系統是win8.1系統,那麼對於win8系統及以上系統,會對外部設備,沒有在windows系統中進行簽名過的,都是不允許在windows系統中進行安裝的,以保證windows系統安全。如下圖所示: 出現這個問題是由於cypress的晶元未經過簽名,顯示安 ...
  • 在第一次插入USB設備時(筆者用的是自己做的USB最小系統來測試),插入電腦後,在設備管理器中會顯示 未知設備,如下圖所示: 點擊右鍵,選擇屬性,在詳細信息中可以看到硬體ID以及PID等,如下圖所示。 根據手冊中的內容,和上述的描述是一致的,如下圖所示: 那麼先預設安裝cypress官網上面的驅動, ...
  • 對於使用FX2的用戶,可以升級到FX2LP,上述的應用筆記《AN4078-C》中就講解了在升級中的註意事項。 必要的修改: 1.晶振的匹配電容需要更改,FX2LP是12pF,不過筆者最近做的最小系統板,用的晶振匹配電容是22pF,沒問題,反而用12pF晶振不能穩定的工作。 2.reset引腳,確認是 ...
  • 準備的文件 新建虛擬機 選擇新建一個空的虛擬機 選擇linux和centos 分配20G的硬碟空間 ' 修改配置 調整記憶體空間 橋接:虛擬機和真實機通訊使用的是真實機的網卡,要占用真是IP NAT:虛擬網卡VMnet8 HOST ONLY :VMnet1 只能和虛擬機通訊,不能上網 安裝CentOS ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...