vi中的撤銷與重做

2021-07-10 12:02:00 字數 3241 閱讀 3054

在vi中按u可以撤銷一次操作

u  撤銷上一步的操作

ctrl+r 恢復上一步被撤銷的操作

注意:

如果你輸入「u」兩次,你的文字恢復原樣,那應該是你的vim被配置在vi相容模式了。

重做如果你撤銷得太多,你可以輸入ctrl-r(redo)回退前乙個命令。換句話說,它撤銷乙個撤銷。要看執行的例子,輸入ctrl-r兩次。字元a和它後面的空格就出現了:

young intelligent turtle

有乙個特殊版本的撤銷命令:「u」(行撤銷)。行撤銷命令撤銷所有在前乙個編輯行

上的操作。 輸入這些命令兩次取消前乙個「u」:

a very intelligent turtle

***x 刪除very

a intelligent turtle

****** 刪除turtle

a intelligent

用「u」恢復行

a very intelligent turtle

用「u」撤銷「u」

a intelligent

「u」命令自己改變自己,「u」命令撤銷操作,ctrl-r命令重做操作。這有點亂,但不用

擔心,用「u」和ctrl-r命令你可以切換到任何狀態。

流行的文字編輯器通常都有前進和後退功能,可以在檔案中曾經瀏覽過的位置之間來回移動。在 vim 中使用 ctrl-o 執行後退,使用 ctrl-i 執行前進。

相關幫助: 

:help ctrl-o 

:help ctrl-i 

:help jump-motions

好久沒有用linux了,身邊又沒有環境,煩請各位給看看,給個準確答案:  

1   在   vim   中,遇到如下的編輯問題,應該怎麼操作? 

c)   還原被撤消的編輯操作。  

d)   多次重複一組編輯操作。  

e)   把一段文字轉換為全部大寫。 

2   下面的目錄屬性 

drwxrwsr-x  

7   dijk  

team  

4096  

4月  

8   19:34   qingli 

a)   這裡的   s   屬性有何作用?  

b)   屬性欄位後的數字   7   表示什麼? 

3   liback.la  

庫檔案的字尾.la是什麼含義?

a)   撤消上乙個編輯操作。  

====》   u  

*****>   .  

c)   還原被撤消的編輯操作。   *****=>   ctrl   +   r  

d)   多次重複一組編輯操作。  

"."命令可以重複最近一次的編輯動作.   但是如果你要做的操作遠比  

這些小兒科複雜呢?   那就是vim為什麼要引入命令記錄的原因.   使用命令  

記錄分三個步驟1  

1.   使用"qfregisterg"命令開始,   後續的動作將被記錄進名為fregisterg的  

暫存器中.   給出的暫存器名字必需是a到z之間的乙個字母2  

2   執行你要執行的操作3.  

3.   按下q以結束對命令的記錄(注意僅僅是q乙個字元,   不要鍵入多  

餘的字元).  

現在你可以通過"@frecordingg"命令來執行剛剛記錄下來的記錄巨集  

了.下面的例子將演示如何實際執行該功能.   假如你有如下的檔案名列  

表:  

stdio.h  

fcntl.h  

unistd.h  

stdlib.h  

而你實際想要的結果如下:  

#include   "stdio.h"  

#include   "fcntl.h"  

#include   "unistd.h"  

#include   "stdlib.h"  

將游標移動到第一行上.   接下來執行:  

qa   開始將後續的命令記入暫存器a  

^   將游標移動到行首  

i\#include   " 在該行之前插入#include   "  

$   移動到行尾  

a" 在行尾加上"字元  

j   移到下一行  

q   停止記錄  

現在你已經將對第一行的操作完成了一遍,   對其它三行只需要執  

行3次"@"命令"@a"命令也可以加乙個數字前輟1,   這會使該記錄被回放由  

該數字指定的次數.   在上面的例子中是:  

normal   mode   command  

3@a  

e)   把一段文字轉換為全部大寫。  

~   交換大小寫(a   ->   a,   a   ->   a)  

u   將小寫變大寫(a   ->   a,   a   ->   a)  

u   將大寫變小寫(a   ->   a,   a   ->   a)  

drwxrwsr-x  

7   dijk  

team  

4096  

4月  

8   19:34   qingli  

a)   這裡的   s   屬性有何作用?  

set-uid位。當程式執行的時候,會改變執行許可權,既設定了set-uid位後程式的執行許可權變為檔案所有者許可權。  

b)   屬性欄位後的數字   7   表示什麼?  

子目錄的個數   包含.   ..目錄。

liback.la  

庫檔案的字尾.la是什麼含義?  

表示libback是個靜態庫。

b)   屬性欄位後的數字   7   表示什麼?  

子目錄的個數   包含.   ..目錄。?  

這裡的7,應該是指鏈結到此檔案的個數吧.!

這裡的7,應該是指鏈結到此檔案的個數吧.!  

****************************************==  

鏈結是ln建立的檔案??  

這樣解釋把:  

7專業的叫法是連線記數。  

任何乙個葉目錄(不包含任何其他目錄,也就是子目錄的目錄)其連線記數總是2,數值2來自於命名該目錄的目錄名以及該目錄中的.項。當建立乙個子目錄該子目錄裡的..項指向他的父目錄,使父目錄的連線記數加1。  

所以也可以說7是子目錄的個數+目錄名+.  

我上面說的..不包含在內。(不好意思)

執行緒的建立與撤銷

1 熟悉windows系統提供的執行緒建立與撤銷系統呼叫.2 掌握windows系統環境下執行緒的建立與撤銷方法.ceatethread 完成執行緒的建立.它在呼叫程序的位址空間上建立乙個執行緒,執行指定的函式,並返回新建立的執行緒的控制代碼.原型 handle ceatethread lpsecu...

qt撤銷與回退 Git撤銷某次分支的合併Merge

問題 某天,所有的開發檔案已經在dev分支上,但是這時候,線上出了乙個問題,需要及時修復,於是從master分支上,拉了乙個bug分支,進行處理,master分支本應合併bug分支,結果合併了dev分支,而且還commit,並推到了遠端的master分支,這時候才發現出了問題,於是乎,問題就來了 方...

Git 撤銷與rabse 的使用

作用域與版本關係 操作 工作區 暫存區 本地倉 遠端倉 提交 untracked git add tracked git commit git push 撤銷 git checkout file git reset hard head git reset git rebase i git push ...