vim編輯和命令模式、實踐

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

9月29日任務

5.5 進入編輯模式

5.6 vim命令模式

5.7 vim實踐

?

Vim編輯模式

進入編輯模式

操作

說明

i

在光標所在字符前插入內容

I

在光標所在行行首插入內容

a

在光標所在字符后插入內容

A

在光標所在行行尾插入內容

o

在光標所在行及下一行之間插入一個新行,并在該行行首處進行編輯

O

在光標所在行及上一行之間插入一個新行,并在該行行首處進行編輯

退出編輯模式

按ESC鍵即可

?

vim命令模式

位置定位

一般模式下,輸入**:n**(n為行號),然后按回車鍵,光標自動定位到n行行首。

內容搜索(高亮顯示)

在一般模式下輸入/或?進行內容的搜索

  • /搜索內容

e38da80aab6edec180b056d5c4a002ee64a.jpg

n向下搜索,N向上搜索

  • ?搜索內容

c1a6dcf865deac272c0aa06bfdbfd0f950d.jpg

n向上搜索,N向上搜索

內容替換

在一般模式下輸入“:”加 s可以進行替換操作

格式 “ :范圍 s/替換前/替換后/g ”

(s替換,g全部,不加g只替換一行中最先出現的那個)

:替換/etc/passwd的拷貝文件中1-10行內所有的/sbin為/test

初始數據如下:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
  • 加g的效果

:1,10 s#/sbin#/test#g

72455cb58b869d76c098adea16c97b57589.jpg

  • 不加g的效果

:1,10 s#/sbin#/test#

bf272d04353b40f9b577722d87d38be6545.jpg

只替換了當行的第一個匹配項

當替換的內容里包含/,有兩種方法解決:

  • 在內容的/前加\進行轉義

  • 使用其他字符(#%*)進行分割如s#/root#/home#g

其他命令

  • :wq | :wq! 保存退出

  • :set nu 顯示行號

  • :set nonu 不顯示行號

  • :nohl 取消高亮

  • :x

    • 文件被修改了 跟:wq效果一致

    • ==文件未被修改== :wq會修改mtime,:x不會

?

vim擴展知識

常用快捷鍵

快速注釋文本內所有的行

  • ctrl+v (進入可視塊編輯模式)

  • j/k (向下移動選擇每行行首)

  • shift+i + # (在第一行插入#)

  • 按esc (每行自動插入第一行插入的#)

查看光標所在位置單詞(命令)的man手冊

shift+k

刪除光標所在字符到某個字符之間的所有字符

#  刪除前
sync:x:5:0:sync:/sbin:/bin/syncd + f + /
刪除了中間的“sync:/”# 刪除后
sync:x:5:0:sbin:/bin/sync

刪除光標后的所有字符

D 或 shfit+d

刪除當前光標所在位置的單詞

d + i + w

選中當前光標上的單詞

v + i + w

自動代碼縮進導致黏貼代碼縮進混亂的2種解決

  1. :set noai nosi (黏貼前執行)

  2. :set paste

?

文件加密、解密

加密

  1. vim/vi file

  2. :X 回車,輸入密碼并確認

  3. 保存退出

  4. 再次使用vim/vi編輯,不輸入密碼回車會顯示為亂碼

解密

  1. vim/vi file

  2. :set key= 設置密碼為空

  3. 保存退出

?

更多使用操作,可以查看《Vim實用技巧》一書。?

?

轉載于:https://my.oschina.net/u/3964535/blog/2221381

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

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

相關文章

英語自動提取高頻詞_斑馬英語提分營免費體驗課

斑馬英語電腦版是一款專業可靠的英語學習軟件,斑馬英語官方版可以幫助孩子學習純正的英語口語發音,以講故事的形式讓孩子學習單詞及口語練習,斑馬英語電腦版針對兒童語言特征設計的智能口語測評系統,能夠自動識別發音和評分&#…

【C# Personal Handbook】開篇

博客已提更一年多了,這段時間里,發生了很多事情,也讓我對C#更加依戀,所以我決定重新更新博客,以自己的實踐經驗梳理C#的技術脈絡,也歡迎大家手下留情,耐心指點,讓我們共同進步吧&…

canvas特效代碼詳解(2)

canvas是一個就基于像素的畫圖h5元素。 利用canvas做一個如下描述所示的動態圖形&#xff1a;當鼠標點下去時開始繪圖&#xff0c;在鼠標結束時完成一個矩形&#xff0c;當再一次點擊時重復第一次的繪圖步驟。 1 <!DOCTYPE html>2 <html>3 <head>4 …

阿里云三維可視化使用初體驗

title: 阿里云三維可視化使用初體驗tags: 物聯網開發BIMcategories:物聯網本文主要的目標是使用阿里云的云產品 - 物聯網套件三維可視化 開始 準備工作 進入下載頁面下載頁面&#xff0c;點擊“模型編輯器下載”安裝模型編輯器下載安裝完畢&#xff0c;啟動模型編輯器下載&…

同時綁定onpropertychange 和 oninput 事件,實時檢測 input、textarea輸入改變事件,支持低版本IE,支持復制粘貼...

實時檢測 input、textarea輸入改變事件&#xff0c;支持低版本IE&#xff0c;支持復制粘貼 檢測input、textarea輸入改變事件有以下幾種&#xff1a; 1、onkeyup/onkeydown 捕獲用戶鍵盤輸入事件。缺陷&#xff1a;復制粘貼時無法檢測2、onchenge缺陷&#xff1a;要滿足觸發條件…

hp laser103 屬性沒有配置項_(常見解決方法)UEditor報錯“后端配置項沒有正常加載,上傳插件不能正常使用”...

&#xff08;常見解決方法&#xff09;UEditor報錯“后端配置項沒有正常加載&#xff0c;上傳插件不能正常使用”_向來蕭瑟也無畏-CSDN博客?blog.csdn.net報錯信息詳見此文的“排錯過程&&錯誤信息”→ueditor無法上傳圖片_向來蕭瑟也無畏-CSDN博客3種解決方法1.大小寫…

WinForm(十二)畫圖

在.NET中&#xff0c;畫圖主要是通過Graphics類實現的&#xff0c;這個類主要通過兩類方法完成畫圖&#xff0c;一類是DrawXXX&#xff0c;畫各種線條圖形&#xff1b;另一類是FillXXX,用各種形狀&#xff0c;填充各種圖形。Graphics是畫板&#xff0c;Draw各個方法是各種盞筆&…

從4個方面簡單介紹SaaS

你了解什么是SaaS嗎&#xff1f;SaaS有什么優勢&#xff1f;選擇SaaS平臺要注意哪些要素&#xff1f;在這里&#xff0c;怡海軟件將針對這些問題進行簡單介紹&#xff1a; 什么是SaaS&#xff1f;SaaS是Software-as-a-Service&#xff08;軟件即服務&#xff09;的簡稱&#xf…

騰訊的一筆畫游戲--巧妙解法

根據這個圖形我們可以發現圖中的規律。 所有數據的和 所有邊長的和-最后一個形狀的一個邊-除最后一個邊之外所有邊的一半。 知道了這個規律后我們就很容易去實現代碼了&#xff1a; 這里的解決關鍵點為——“余弦定理”&#xff0c;因為角度我們可以用&#xff08;n-2&#xf…

Map value類型不同的寫法

Map value類型不同的寫法 Map<String, Object> accountMapnew HashMap<String, Object>(); int userId data.get("userId").getAsInt(); int accType data.get("accType").getAsInt();String name data.get("accType").getAsStr…

mysql中局部變量說法正確的是_mysql全局變量和局部變量

全局變量和局部變量在服務器啟動時&#xff0c;會將每個全局變量初始化為其默認值(可以通過命令行或選項文件中指定的選項更改這些默認值)。然后服務器還為每個連接的客戶端維護一組會話變量&#xff0c;客戶端的會話變量在連接時使用相應全局變量的當前值初始化。舉一個例子&a…

Web應用架構-Full-text Search Service

Elasticsearch轉載于:https://www.cnblogs.com/zhitianji/p/9728016.html

終于找到你!如何將前端console.log的日志保存成文件?

本篇文章來自一個需求&#xff0c;前端websocket會收到各種消息&#xff0c;但是調試的時候&#xff0c;我希望把websoekt推送過來的消息都保存到一個文件里&#xff0c;如果出問題的時候&#xff0c;我可以把這些消息的日志文件提交給后端開發區分析錯誤。但是在瀏覽器里&…

基于 .NET 6 開發的開源遠程終端工具

你好&#xff0c;這里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;有用的工具&#xff0c;不要忘記關注。今天介紹一個非常實用的工具 mRemoteNG&#xff0c;這是一個基于 .NET 6 開發的遠程終端軟件&#xff0c;開源免費&#xff0c;不用擔心版權和軟件費用…

mysql 行列轉換 動態_mysql 行列動態轉換的實現(列聯表,交叉表)

(1)動態&#xff0c;適用于列不確定情況create table table_name(id int primary key,col1 char(2),col2 char(2),col3 int);insert into table_name values(1 ,A1,B1,9),(2 ,A2,B1,7),(3 ,A3,B1,4),(4 ,A4,B1,2),(5 ,A1,B2,2),(6 ,A2,B2,9),(7 ,A3,B2,8),(8 ,A4,B2,5),(9 ,A1,…

第六次作業—例行報告

本周PSP 進度條 代碼累計折線圖 博文累計折線圖 本周餅狀圖 轉載于:https://www.cnblogs.com/zej87/p/7738895.html

Tomcat7/8開啟WebDAV的支持

WebDAV是一種超文本傳輸協議&#xff0c;Tomcat默認是支持WebDAV的&#xff0c;且默認為禁用狀態。 更多詳細信息&#xff0c;請參考&#xff1a; https://zh.wikipedia.org/wiki/WebDAV http://www.webdav.org/ 開啟步驟如下&#xff1a; 1、在Tomcat的webapps目錄下新建webda…

算法復雜度分析(下)

前一篇文章算法復雜度分析&#xff08;上&#xff09;講述了復雜度的大 O 表示法和幾個分析原則&#xff0c;這篇文章我們來講講另外幾種復雜度&#xff0c;最好情況時間復雜度&#xff08;best case time complexity&#xff09;、最壞情況時間復雜度&#xff08;worst case t…

免費分享一些.NET Core比較優秀的社區資料和微軟官方資料

這次小編所分享的這套筆記手冊&#xff0c;主要是分享一些.NET Core比較優秀的社區資料和微軟官方資料。已經把所有的重要知識點進行了完整的歸類和整理&#xff0c;可以讓大家更清晰和快速的學習.NET Core&#xff0c;不浪費任何多余的時間&#xff01;全網首發&#xff01;相…

python異或運算怎么算_小強學Python+OpenCV之-1.4.4掩膜mask及位運算(與、或、非、異或)...

問題引入在小強學PythonOpenCV之&#xff0d;1.4.2裁剪一節&#xff0c;我們使用的是numpy數組切片功能實現圖片區域的裁剪。那么&#xff0c;如果我們想要裁剪圖像中任意形狀的區域時&#xff0c;應該怎么辦呢&#xff1f;答案是&#xff0c;使用掩膜(masking)。但是這一節我們…