巴中熱線

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

查看: 6536|回復: 0
打印 上一主題 下一主題

[電腦網絡] vim編輯文件常用快捷鍵

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2018-12-2 11:28:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

注冊巴中熱線論壇,交好友享優惠,衣食住行吃喝玩樂盡在 BZHOT.com

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊

x
vim 常用快捷鍵
1、vim ~/.vimrc 進入配置文件

如果不知道vimrc文件在哪,可使用 :scriptnames 來查看
set nu    #顯示行號
set tabstop=4  #一個tab為4個空格長度
set ai    #設置自動縮進
syntax on    #設置高亮


2、基本編輯文件操作
空格鍵  向右移動一格
x   刪除后面的字符
X   刪除前一個字符
3x  刪除3個字符
dd  刪除一行
3dd 刪除光標處的3行,含本行
D   刪除到行尾
J   刪除換行符,使下一行并上來
nJ  連接后面的n行
u   撤銷上一次操作
U   撤銷當前行的所有修改
i   在光標前插入
I   在行首插入
a   在光標后插入
A   在行末插入
3yy 復制光標處的3行,含本行
P   粘貼至光標后,和dd,yy配合使用
p   粘貼至光標前,和dd,yy配合使用
3P:粘貼3次
"2p 粘貼最后第二次的刪除的內容
o   在當前行的下面另起一行,并變為插入模式
O   在當前行上面另起一行,變為插入模式
x   刪除光標當前字符
X   刪除光標左邊的字符,相當于<-鍵
yaw  復制一個單詞,光標在單詞任意位置
ynw  復制N個單詞
ynj  向下復制n行
ynk  向上復制n行
ctrl+r  對撤消的撤消
caw  改寫單詞  c 相當于 d 變為編輯模式

有時我們不容易得出行數,這時可以用做標記的方法來制定復制范圍:
1. 在開始行上輸入ma作一個標記a
2. 移動到結束行,輸入y'a會復制當前行到標記a之間的文本。d'a會刪除。

或者是v進入可視模式,再13G跳轉到相應行,y即可。
:10,20y    回車即可,相應的刪除也是如此
:10,20d     (此方法比上面兩種方法更簡單)
:10,20 m 30    把10行到20行的內容,剪切到30行之后
:10,20 co 30   把10行到20行的內容,復制到30行之后

fx  向右跳到本行字符x處(x可以是任何字符)
Fx  向左跳到本行字符x處(x可以是任何字符)
tx  和fx相同,區別是跳到字符x前
Tx  和Fx相同,區別是跳到字符x后
#  到與當前單詞相同的上一個單詞上
*  到與當前單詞相同的下一個單詞上

如果你要重復鍵入一個短語或一個句子, 也有一種快捷的方法。Vim有一種記錄宏的機制。你鍵入"qa"開始把一段宏記錄入寄存器變量`a'中。
按下來你可以象平常一樣鍵入你要的操作, 只是這些操作都會被Vim記錄進它命名為`a'的宏中, 再次再下"q"鍵, 就結束了宏`a'的錄制。當你要重復執行你剛才記錄的那些操作時只要使用"@a"命令。共有26個可用的寄存器供你記錄宏。 使用宏你可以重復多個不同的操作。而不僅僅是插入文本了。如果你要進行某種重復的操作, 記著要用這一招呀。

:abbr hte the
:abbr hw Hello World

輸入先面的單詞時,自動用后面的替換。

3、移動:

b、3b、w、3w:向前\后移動幾個單詞,標點也算一個單詞。相應的大寫狀態為不含標點,即只把空格和換行符作為單詞間隔符。

$:移動到行尾  3$:移動到3行后的行尾

^:移動到行首,0也是

+:移到下一行的行首

-: 移到上一行的行首

f:搜索命令,小寫時向后搜索(用來定位)如 fx:定位到下一個x上。   Fx:定位到上一個x上,重復時,可用;或,  不過 , 表示反方向

%:跳到相對應的括號上,編程時常用

33G:跳轉到33行   此時按``可以返回到原來行

gg:文件頭   G: 文件尾

30%:跳轉到文件的30%處

"H"意為Home, "M"為Middle, "L"為Last.  當前屏幕的上中下位置,大小寫皆可

Ctrl+G:顯示當前位置

set number:設置顯示行號,set nonumber:關閉顯示

:set ruler 設置在窗口右下角顯示行號,與上面的好處是,節省空間

ctrl+u\d  向上\下滾動半屏

ctrl+e\y  向上\下滾動一行

ctrl+b\f  向上\下滾動一屏  這個比較實用,記住。

Ctrl+o:臨時變成命令模式(一次而已)

:e!:放棄更改,然后相當于重新打開

zz:將當前行滾動于屏幕中間,方便查看上下文  zt置頂,zb置尾

/string  查找string,回車后,按n鍵可以跳到下一個,N上一個,另外按/鍵后,按上下鍵可以找到以前查找的記錄,同樣的 :也有記錄

?/string 同上,默認向上查找

:set ignorecase 大小寫無關

:set noignorecase 大小寫敏感

* :查找下一個光標所在單詞  #是查找上一個

:set hlsearch  高亮顯示查找結果

:set nohlsearch  取消高亮

:nohlsearch  去掉當前顯示的高完(一次性)

`` 上次光標停靠的行

% 匹配到相應括號處

>>   向右移動本行一段距離     <<   向左移動本行一段距離    3<<    把下面3行(包括本行),向左移動一段距離     :20,30>>  把20行到30行向右移動一段距離

4、小幅改動:

:%s/str1/str2/g   替換每一行的 str1為 str2

:10,20s/str1/str2/g   替換從行10到行20之間的 str1為 str2

:10,$s/str1/str2/g   替換從行10到最后一行之間的 str1為 str2

:s/str1/str2/g   替換當前行的 str1為 str2

.  重復執行命令

:10,$ w test2.cpp     取行10到最后一行內容,保存到test2.cpp

:r class/User.hpp    讀取文件中的內容,插入到當前行的后面

dw:刪除一個單詞(光標后部分)  不如:daw實用    d4w:刪除4個單詞    d$:刪除當前光標到行尾    d^:刪除當前光標至行首       d換成c效果是一樣的,只是操作完會變成insert模式   dnw: 刪除N個單詞   dnj: 向下刪除n行      dnk: 向上刪除n行


D  相當于d$
C  相當于c$  s:相當于c1  S:相當于cc

r:替換當前字符,但不會進入insert模式    3r:把后面3個字符替換掉    R:替換模式

.:重復上一次操作

v:進入Visual模式
V:進入可視行模式,比如 Vjjd 刪除3行
Ctrl+v:可視塊模式

自動縮進:

:set cindent(所有的set都可以簡寫為se,雖然只節省了一個字符, 譯者注) 需要注意的是cindent控制縮進量是通過shiftwidth選項的值, 而不是通過tabstop 的值, shiftwidth的默認值是8(也就是說, 一個縮進為8個空格, 譯者注), 要改變默認的設置, 可以使用":set shiftwidth=x"命令, 其中x是你希望一個縮進量代表的空格的數目.

{ = 到前一個空行上
} = 到下一個空行上



上一篇:如何給/home增加空間?Linux系統把/home重新掛載到其他硬盤或分區方法
下一篇:Linux系統硬鏈接和軟鏈接作用特點和鏈接方法
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關閉

巴中熱線 - 精彩推薦上一條 /1 下一條

快速回復 返回頂部 返回列表
阿拉丁走势图