【vim】幾種模式的切換

很多初學者啟動vim后,不知道怎么輸入字符:按了半天字母,結果屏幕還是空的。

vim和記事本或WORD不一樣,不是一打開后就可以輸入文字,此時它處于正常模式。

vim一共有4個模式:

  • 正常模式 (Normal-mode)?
  • 插入模式 (Insert-mode)
  • 命令模式 (Command-mode)
  • 可視模式 (Visual-mode)

?

注意:方向鍵(上下左右那幾個)可以在vim屏幕里跳來跳去。現在知道這個對
體驗以下的模式有用。但是,通過方向箭來移動,是一個笨辦法。。。講到正常
模式時會說到更好的方法(我不會現在就告訴你h,j,k,l鍵分別對應左,下,上,右的:D)

正常模式

正常模式一般用于瀏覽文件,也包括一些復制、粘貼、刪除等操作。這時擊鍵時,
一般的鍵/鍵組合會被當成功能鍵,而不會鍵入對應的字符。

在這個模式下,我們可能通過鍵盤在文本中跳來跳去,跳動的范圍從小到大是字符、
單詞、行、句子、段落和屏幕。

啟動vim后默認位于正常模式。不論位于什么模式,按下<Esc>鍵(有時需要按兩下)
都會進入正常模式。

插入模式

在正常模式中按下i, I, a, A等鍵(后面系列文章會詳細介紹),會進入插入模式。
現在只用記住按i鍵會進行插入模式。插入模式中,擊鍵時會寫入相應的字符。

?

命令模式

在正常模式中,按下:(冒號)鍵,會進入命令模式。在命令模式中可以執行
一些輸入并執行一些vim或插件提供的指令,就像在shell里一樣。這些指令包括
設置環境、文件操作、調用某個功能等等。

?

可視模式

在正常模式按下v, V, <Ctrl>+v,可以進入可視模式。可視模式中的
操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的即視感,有時候
會很方便。

?

根據需要靈活快速的切換各種模式非常有用。

配置回到正常模式的快捷鍵

由于不論在其他什么模式下,按一次或兩次<Esc>鍵都可以回到正常模式,我們
可以想見,<Esc>鍵會經常用到。由于<Esc>鍵在標準qwert鍵盤的左上角,對
于左手小指不靈活的朋友來說,按起來比較不方便(我就是如此),因此在上一篇
中我們通過配置.vimrc把<Esc>映射成了按兩下j鍵。

" 將ESC鍵映射為兩次j鍵                                       
inoremap jj <Esc>  

j鍵正好在右手食指的基本鍵位上(一般上面還有個突起),用起來十分方便。
如果只讓我保留一個vim設置的話,我會選擇保留它。

?

--------------------------------------------------------------------------------

在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出,?? 返回到shell。???

?   在末行模式下,輸入命令???

?   :w?

?   Vi保存當前編輯文件,但并不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。

?   [例6]???

?   :w?? newfile?

?   此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:?

?   File?? exists?? (use?? !?? to?? override)?

?   此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令?

?   :w!?? newfile?

?   否則可選擇另外的文件名來保存當前文件。?

?   在末行模式下,輸入命令???

?   :q?

?   系統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:?

?   No?? write?? since?? last?? change?? (use?? !?? to?? overrides)?

?   提示用戶該文件被修改后沒有保存,然后Vi并不退出,繼續等待用戶命令。若用戶就是不想保存被修改后的文件而要強行退出Vi時,可使用命令?

?   :q!?

?   Vi放棄所作修改而直接退到shell下。?

?   在末行模式下,輸入命令???

?   :wq?

?   Vi將先保存文件,然后退出Vi返回到shell。?

?   在末行模式下,輸入命令???

?   :x?

?   該命令的功能同命令模式下的ZZ命令功能相同

-------------------------------------------------------------------------------

?

參考原文鏈接:https://www.cnblogs.com/zzqcn/p/4619012.html

?

寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!

如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!

轉載于:https://www.cnblogs.com/summary-2017/p/9375072.html

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

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

相關文章

數據結構----順序表與單鏈表(JAVA)

下面為學習順序表和單鏈表的一些基本操作函數&#xff1a; 1 public class SeqList<T> extends Object {2 protected int n;3 protected Object[] element;4 5 public SeqList(int length) {6 this.element new Object[length];7 this.n 0…

SSH初體驗系列--Hibernate--1--環境配置及demo

最近在學hibernate,常見的教程都是搭配mysql,因為公司本地電腦用的是pg,所以就嘗試著做個pg的小demo. 自己也是邊學邊寫&#xff0c;只當是加深印象.話不多說&#xff0c;直接開始; 一) 準備工作; 1) 本地安裝postgresql ,這個不多說&#xff0c;自己去網上下載; 注: 本次使用的…

Qt學習:QAction系列詳解

一、QAction類詳解 【詳細描述】 QAction類提供了抽象的用戶界面action&#xff0c;這些action可以被放置在窗口部件中。 應用程序可以通過菜單&#xff0c;工具欄按鈕以及鍵盤快捷鍵來調用通用的命令。由于用戶期望每個命令都能以相同的方式執行&#xff0c;而不管命令所使用的…

H.264優秀特征

一、主要特性 1、H.264/AVC相對以前的編碼方法&#xff0c;以MPEG-2為例&#xff0c;在圖像內容預測方面提高編碼效率&#xff0c;改善圖像質量的主要特點如下&#xff1a; ● 可變塊大小運動補償&#xff1a; 選擇運動補償大小和形狀比以前的標準更靈活&#xff0c;最小的…

Linux 文件系統 EXT4 的前世今生

在先前關于Linux文件系統的文章中&#xff0c;我寫了一份說明書去介紹Linux文件系統&#xff0c;里面有一些高級的概念&#xff0c;比如說&#xff0c;一切都是文件。我很想去深入地討論更多EXT文件系統的特性的信息。所以&#xff0c;首先讓我們來回答這個問題&#xff1a;什么…

windows 添加開始菜單

C:\Users\用戶名&#xff08;為你設置的電腦名稱&#xff09;\AppData\Roaming\Microsoft\Windows\Start Menu C:\ProgramData\Microsoft\Windows\Start Menu 注&#xff1a;默認狀態下AppData和ProgramData文件夾為隱藏狀態&#xff0c;所以要查看需要先顯示隱藏的文件。 具體…

awesome-go:很全的go語言資源合集

awesome-go:一個很全的go語言框架&#xff0c;庫&#xff0c;軟件合集 前面發過關于awsone-python, awsone django&#xff0c; flask。最近在學習golang&#xff0c;所以找到awsone-go 非常贊的go語言 Audio & 音樂類安全認證 & OAuthCUI數據庫數據庫驅動日期時間Emai…

zabbix監控系列(5)之通過trap模式監控網絡設備

轉載于:https://www.cnblogs.com/liaojiafa/p/7216749.html

struts2框架下的一個簡單的ajax例子

舉個例子 jsp頁面&#xff1a; <% page language"java" import"java.util.*" pageEncoding"utf-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":…

C語言的指針初始化特別注意一點

void func2(int *value) { *value 2; /// value為空指針&#xff0c;不能被取值&#xff0c;所以*value是錯誤的 } void func1() { int *p 0;//此處相當于PNULL func2(p); } / void func2(int *value) { *value 2; /// 正確} void func1() { int a0; int *p &…

小程序—九宮格心形拼圖

說明 前幾天在朋友圈看到好幾次這種圖片。 這種圖片&#xff0c;是用九張圖片拼成的一個心形。 感覺很有趣&#xff0c;就上網查了查怎么做&#xff0c;大部分的說法就是用美圖秀秀的拼圖功能來做&#xff0c; 在微信小程序中也有專門做心形拼圖的小程序&#xff0c;我都試了試…

第二部分:志愿錄取標準

第二部分&#xff1a;志愿錄取標準 零、概況一、傳統志愿錄取過程二、平行志愿錄取過程三、17年志愿錄取過程 零、概況自1977年&#xff0c;恢復高考以來&#xff0c;高考錄取標準&#xff0c;作為公平線&#xff0c;都是相當透明的。這部分分享&#xff0c;以錄取標準&#xf…

100. Same Tree

Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value. 遞歸遍歷左子樹和右子樹 /*** Definition for a binary tree node.* struct T…

關于RTP時間戳及多媒體通信同步的問題/H264關于RTP協議的實現

http://www.rosoo.net/a/201101/10776.html http://hi.baidu.com/fairygardenjoy/blog/item/e56c5cca95829e37b600c88e.html H264關于RTP協議的實現:http://www.rosoo.net/a/201108/14896.html RTP協議包頭的格式&#xff1a; 10~16 Bit為PT域&#xff0c;指的就是負載類型…

程序員懂點經濟學-股票投資

2019獨角獸企業重金招聘Python工程師標準>>> ▍寫在前面 前面有文章 關于程序員如何賺點小錢 講過 合理的投資理財&#xff0c;可以了解一下. 再次建議&#xff0c;不要將全身家當投入股市&#xff0c;建議投入10~30%就好了. (不要拿輸不起的錢來炒股&#xff0c;比…

徹底弄懂響應式設計中的em和rem

前一陣子在響應式開發中遇到了em和rem的問題&#xff0c;也上網搜過一些文章&#xff0c;篇幅很長&#xff0c;也沒有仔細看&#xff0c;今天來總結一下。 rem是指&#xff1a;根元素&#xff08;root element&#xff0c;html&#xff09;的字體大小&#xff0c; em是指&#…

JAVA字符串

字符串 1. 字符串 1.1 字符串概述和特點 java.lang.String類代表字符串。 API當中說&#xff1a;Java 程序中的所有字符串字面值&#xff08;如 "abc" &#xff09;都作為此類的實例實現。 其實就是說&#xff1a;程序當中所有的雙引號字符串&#xff0c;都是String類…

21分鐘 MySQL 入門教程

轉自 21分鐘 MySQL 入門教程 一、MySQL的相關概念介紹二、Windows下MySQL的配置配置步驟MySQL服務的啟動、停止與卸載三、MySQL腳本的基本組成四、MySQL中的數據類型五、使用MySQL數據庫登錄到MySQL創建一個數據庫選擇所要操作的數據庫創建數據庫表六、操作MySQL數據庫向表中插…

node-sass報錯解決方法

node-sass報錯解決方法 node-sass報錯解決方法 在Vue.js中&#xff0c;每一個vue文件都是一個組件&#xff0c;在.vue文件中可以將模板&#xff0c;腳本&#xff0c;樣式寫在一起&#xff0c;便于組織整個組件。在使用template&#xff0c;script時&#xff0c;編寫css樣式時&a…