Linux(9)-Vim編輯器的使用

Vim編輯器的使用

  • 1.指令模式常用快捷鍵
    • 1.1 定位快捷鍵
    • 1.2 編輯快捷鍵
    • 1.3查找相關的快捷鍵
  • 2.行末模式常用命令
    • 2.1 文件操作命令
  • 3. 切換默認編輯器nano->vim
  • 4.tip
    • 4.1顯示行號

vim編輯器有3種工作模式:

  1. 指令模式–依據快捷鍵對文本進行編輯–復制、黏貼、刪除、查找
  2. 輸入模式–通過鍵盤向文本中輸入字符的模式–i/Insertk鍵進入,Esc鍵退出
  3. 行末模式–通過命令執行打開、保存、查找替換、退出文件等操作–:進入的,回退為指令模式或者退出文件(不管指令是否有效)

1.指令模式常用快捷鍵

1.1 定位快捷鍵

(定位就是光標移動唄)

  1. 上下左右箭頭移動光標
  2. gg-首行、shift+(gg)–末行、數字->shift+g–任意行
  3. w-向后移動一個單詞,b-向前移動一個單詞

1.2 編輯快捷鍵

  1. 刪除行:dd-刪除當前行、d3d–從當前行往下刪三行
  2. 刪除字符:d3向左方向鍵、d3向右方向鍵
  3. 刪除行尾回車:shift+j (試了一下,沒成功)
  4. 撤銷上一次操作:u
  5. 恢復上一次的撤銷操作:Ctrl+u(試了一下,沒成功)
  6. 復制行/字符:y3y、y3向左方向鍵(和d命令很像)
  7. 黏貼:p

1.3查找相關的快捷鍵

無論使用哪種查找方式,找到一個后。按n,向下查找下一個結果。按shift+n,向上查找上一個結果。

  1. /查找內容+回車
  2. shift+/,在行末?后輸入查找內容+回車
  3. 向下查找某個單詞shift+8,向上查找某個單詞shift+3

2.行末模式常用命令

2.1 文件操作命令

  1. 保存文件w
:w # 保存入當前文件
:w new_file.txt # 另存為 
  1. 新建一個文件new,同時關閉當前文件
  2. 退出文件q
  3. 查找替換。加了g會在同一行中找到所有查找內容。
:查找范圍s/查找內容/替換內容/g
# 查找范圍:當前行,不用寫
# 查找范圍:整個文件--%
# 查找范圍:第三和第九行--3,19
# 查找范圍:6到最后一行--6,$
# 查找內容:正則表達式
# 替換內容:為空可以表示刪除操作

5.內容過濾

:g # 過濾出包含某個字符串的行
:v # 過濾出不包含某個字符穿的行
:g/甲:/d # 過濾出包含"甲:"的行之后,執行刪除操作。
:v/^甲:/w 乙.txt # 過濾出不包含"甲:"的行之后執行,執行另存操作

3. 切換默認編輯器nano->vim

sudo update-alternatives --config editor

輸出如下內容,輸入"數字+enter"選擇對應的編輯器。

There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode

nano 編輯器的退出
step1:Ctrl+X --如果文件未修改直接退出,如果文件修改了輸入Y保存,N不保存,ctrl+C 返回上一級
step2: 輸入Y之后會提示要保存的文件名,不需要修改文件名的話直接按回車鍵退出
參考資料:https://jingyan.baidu.com/article/046a7b3e6552e3f9c27fa9d9.html

4.tip

4.1顯示行號

:set nu         # 手動單次顯示行號vim ~/.vimrc    寫入set nu   # 永久顯示行號

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444821.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信app公眾平臺開發

http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

用awk一些常用技巧sort uniq

統計文件中第一列中同一IP出現的次數cat test123.122.123.12 12121212121.2332.121.11 232323255.255.255.255 21321123.122.123.12 12121212123.122.123.12 1212121er2123.122.123.12 12121212eer123.122.123.12 12121212ere255.255.255.255 21321121.2332.121.11 232323255.2…

leetcode234 回文鏈表

請判斷一個鏈表是否為回文鏈表。 示例 1: 輸入: 1->2 輸出: false 示例 2: 輸入: 1->2->2->1 輸出: true 進階: 你能否用 O(n) 時間復雜度和 O(1) 空間復雜度解決此題? 思路:逆置前一半,然后從中心出發開始比較即…

mysql導入source數據庫sql的C++實現和封裝

之前有好多人在為這件事情頭疼不已: 想有一個不需要安裝mysql客戶端就可以導入數據庫腳本,但找不到對應的api調用。所以得需要自己去實現導入數據庫的實現方法: common.h #ifndef _COMMON_H #define _COMMON_H #ifdef WIN32#include <winsock2.h>typedef __int8 …

C++(12)--函數基礎:按值傳遞、傳遞數組、函數指針

模塊化編程--函數1. 函數基本知識2. 函數的參數2.1 按值傳遞機制&#xff08;小議按引用傳遞&#xff09;2.2 使用數組做函數參數&#xff08;用戶頭文件&#xff0c;const的防改&#xff09;2.3 使用二維數組作為函數的參數2.4 使用函數指針作為函數的參數2.4.1 函數指針的基本…

關于關閉SELinux的方法

原貼:http://www.diybl.com/course/6_system/linux/Linuxjs/2008629/129166.html關閉SELinux的方法&#xff1a;修改/etc/selinux/config文件中的SELINUX"" 為 disabled &#xff0c;然后重啟。如果不想重啟系統&#xff0c;使用命令setenforce 0注&#xff1a;seten…

leetcode739 每日溫度

根據每日 氣溫 列表&#xff0c;請重新生成一個列表&#xff0c;對應位置的輸入是你需要再等待多久溫度才會升高超過該日的天數。如果之后都不會升高&#xff0c;請在該位置用 0 來代替。 例如&#xff0c;給定一個列表 temperatures [73, 74, 75, 71, 69, 72, 76, 73]&#…

scp免密碼遠程拷貝

有些時候&#xff0c;我們在復制/移動文件 到另一臺機器時會用到scp&#xff0c;因為它比較安全。但如果每次都要輸入密碼&#xff0c;就比較煩了&#xff0c;尤其是在script里。不過&#xff0c;ssh有另一種用密鑰對來驗證的方式。下面寫出我生成密匙對的過程&#xff0c;供大…

C++(13)--函數的進階:內聯、傳遞引用、參數默認值、重載、函數模板

模塊化編程--函數的進階1.內聯函數1.1 inline基本情況1.2 inline 的前世今生-帶參的宏替換2.傳遞引用&#xff08;重點&#xff09;2.1引用、理由、注意事項2.3 交換兩個變量的數值3.返回引用3.1不要返回局部變量的引用3.2函數可以不返回值&#xff0c;默認返回傳入的引用對象本…

終于,我讀懂了所有Java集合——set篇

HashSet &#xff08;底層是HashMap&#xff09; Set不允許元素重復。 基于HashMap實現&#xff0c;無容量限制。 是非線程安全的。 成員變量 private transient HashMap<E,Object> map; // Dummy value to associate with an Object in the backing Map private s…

加速scp傳輸速度

當需要在機器之間傳輸400GB文件的時候&#xff0c;你就會非常在意傳輸的速度了。默認情況下(約125MB帶寬&#xff0c;網絡延遲17ms&#xff0c;Intel E5-2430&#xff0c;本文后續討論默認是指該環境)&#xff0c;scp的速度約為40MB&#xff0c;傳輸400GB則需要170分鐘&#xf…

tcpcopy使用方法

1、下載tcpcopy http://code.google.com/p/tcpcopy/downloads/list 2、配置、編譯、安裝 依此使用如下命令&#xff1a; 配置&#xff1a; ./configure 編譯&#xff1a; make 安裝&#xff1a; make install 3、使用方法 下面以mosquitto為例&#xff0c;說明tcpcopy的用法&a…

C++(14)--面向對象

面向對象1.面向對象編程(難點)2.類和對象demo1:地主類的實現版本1demo2:地主類的實現版本23.訪問修飾符demo3:外部修改成員變量不安全(版本3)demo4: 使用封裝防止直接修改成員變量&#xff08;版本3&#xff09;demo5:進一步封裝&#xff1a;設置/獲取名字&#xff0c;修改積分…

終于,我讀懂了所有Java集合——map篇(多線程)

多線程環境下的問題 1.8中hashmap的確不會因為多線程put導致死循環&#xff08;1.7代碼中會這樣子&#xff09;&#xff0c;但是依然有其他的弊端&#xff0c;比如數據丟失等等。因此多線程情況下還是建議使用ConcurrentHashMap。 數據丟失&#xff1a;當多線程put的時候&…

system函數的返回值和執行腳本的返回值

1、先統一兩個說法&#xff1a;&#xff08;1&#xff09;system返回值&#xff1a;指調用system函數后的返回值&#xff0c;比如上例中status為system返回值&#xff08;2&#xff09;shell返回值&#xff1a;指system所調用的shell命令的返回值&#xff0c;比如上例中&#x…

OJ匯總

國內&#xff1a;&#xff08;一下排名不分先后&#xff09; 浙江大學&#xff08;ZJU&#xff09;&#xff1a;http://acm.zju.edu.cn/ 北京大學&#xff08;PKU&#xff09;&#xff1a;http://acm.pku.edu.cn/JudgeOnline/ 同濟大學&#xff08;TJU&#xff09;&#xff1a;…

C++(15)--面向對象編程實踐-歡樂斗地主(vector的花式輸出)

面向對象編程實踐-歡樂斗地主《老九學堂C課程》《C primer》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的事情用心做&#xff0c;用心的事情堅持做(老九君)---------------要求&#xff1a;實現錄入及…

Google Protobuf 使用介紹

直接在 www.google.com.hk 上搜索google protobuf 后下載官方版本。 官方版本支持C\Java\Python三門語言。 還有很多非官方的語言版本支持&#xff0c;如C\NET(C#/Vb.net)\Flex(AS3)等. 要通信&#xff0c;必須有協議&#xff0c;否則雙方無法理解對方的碼流。在protobuf中&…

epoll的再次認識

使用mmap加速內核與用戶空間的消息傳遞。 這 點實際上涉及到epoll的具體實現了。無論是select,poll還是epoll都需要內核把FD消息通知給用戶空間,如何避免不必要的內存拷貝就很 重要,在這點上,epoll是通過內核于用戶空間mmap同一塊內存實現的。而如果你想我一樣從2.5內核就關…

leetcode82. 刪除排序鏈表中的重復元素 II

給定一個排序鏈表&#xff0c;刪除所有含有重復數字的節點&#xff0c;只保留原始鏈表中 沒有重復出現 的數字。 示例 1: 輸入: 1->2->3->3->4->4->5 輸出: 1->2->5 示例 2: 輸入: 1->1->1->2->3 輸出: 2->3 思路&#xff1a;判斷n…