Ⅰ vim 怎麼使游標移動到行尾空白處
用命令能夠vim游標移屏幕行我說j命令我意思:句太行放則兩行該移第二行呢
Ⅱ vim使用指南
命令行模式:進入vim後的默認模式,用戶可以輸入vim命令來管理自己的文檔,此時從鍵盤上輸入任何字元都會當成編輯命令,輸入合法的vim命令,vim會完成相應的動作
文本輸入模式:在命令模式下輸入i/I 或者a/A 進入輸入模式,就可以在文本文件內輸入內容了,按下ESC則回到命令行模式
末行模式:在命令行模式下輸入:進入末行模式
一般進入vim 都是vim後面跟著文件名
如
如果當前文件夾下沒有此文件,則會在目錄下新生成此文件
註:如果你直接vim進入編輯器,而沒有跟文件名,他也會進去,但是你退出時需要指定文件名稱
如果你想進入編輯器中的具體某一行(指游標所在的行)
需要進入文本輸入模式
命令模式下輸入i進入文本輸入模式可以輸入內容了,在游標所在字元之前進行插入
輸入I 是在游標所在行行首進行輸入
輸入a是在游標所在字元的後面進行插入
輸入A是在游標所在行行末進行輸入
輸入o在游標所在行下面插入一空行
輸入O在游標所在行上面插入一空行
你可以在輸入模式下按Delete或者退格鍵(Backspace)進行刪除文本,我將介紹一些在命令行下如何刪除文本
x —— 刪除游標所在的字元
X —— 刪除游標所在字元前面的字元
D或者d$ ——刪除游標所在位置到行末的字元
dd——刪除游標所在一行
yy——復制游標所在行
Y——復制游標所在位置到行尾
y0——復制游標前一位到行首
p——粘貼
v/V——選中文本
u/U——撤銷
.——重復上次執行的命令
需要進入文本末模式
:q——退出
:q!——強制退出
:w——保存
:wq——保存並退出
j——向下
k——向上
h——向左
l——向右
H——前面加數字代表游標移動到哪行行首,(當前屏幕)
M——移動到文本中間,或者屏幕中間行的行首
L——移動到文本末或者屏幕底部行行首,可以加數字
G——不受屏幕限制,是文本的行數
:set number ——設置行號
/string ——查找命令
Ⅲ vim里頭有沒把第10行到第20行一起向右移動4格的操作
albumin 正解。
:10,20s/^//
是在行首加4個空格。
在第10行用
11>>
或者選中需要的行之後
>
是增加相關行的縮進。同理可以用 < << 來減少縮進。
這一般是8個空格,或者說是將相關行縮進至下一個製表符的位置。
Ⅳ vim中讓所有行右移兩格怎麼做
如果你希望所有的行都增加一級縮進,那麼使用:
:%>
如果是想指定行增加,可以指定行號:
:3,5>
第一條命令中的 % 表示所有行。
Ⅳ vim模式與模式切換vim命令模式
vim有三種模式,本文介紹VIM模式與vim模式切換的方法。
vim命令 模式, 編輯模式 , 尾行模式 和文本編輯命令。
Vim編輯模式插入字元,行尾、行首插入,刪除一個字元和刪除整行命令,Vim復制和粘貼命令,vim替換輸入以及撤銷和反撤銷命令,Vim保存和另存為文件,顯示vim當前編輯文件名。
我們使用vim編輯器的常用文件操作主要是:插入、刪除、復制、粘貼、替換、撤銷、保存、另存為。
在介紹Vim中的上述基本文件操作命令前,需要先介紹下vim的操作模式。因為vim的各種對文件操作命令需要在不同操作模式下使用。
一、Vim三種操作模式
Vim編輯器一共有3種模式,分別為 命令模式 (默認)、編輯模式、尾行模式。這3種模式的轉換關系如下圖所示。
vim三種模式
1 命令模式(command mode)
命令模式是Vim的默認操作模式,當使用vim命令打開一個文件時,默認進入的就是命令模式。不管用戶處於何種模式,只要按下Esc鍵就可使進入命令行模式
2 編輯模式(input mode)
只有在vim編輯模式下,才能將鍵盤鍵入的內容輸入到當前打開的文件中
在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進入文本編輯模式
3 尾行模式(last line mode)
尾行模式主要用於保存文件或退出Vim,同時也可以設置編輯環境和一些編譯工作,如列出行號(set nu)、尋找字元串(/target)等
在命令模式下,用戶按冒號鍵(:)即可進入末行模式下,此時Vi會在顯示窗口的最後一行顯示一個」:「作為末行模式的提示符,等待用戶輸入命令
二、Vim文本編輯命令
約定:在沒有特殊說明的情況下,以下Vim編輯命令部分提到的命令均是在命令模式下使用。
1 vim插入命令
在命令模式下按以下按鍵可進入編輯模式,執行插入操作,具體包括:
從游標當前所在行的【行首】處開始插入:I
從游標當前所在行的【行尾】處開始插入:A
從游標當前所在行的【下一行】處開始插入:o
從游標當前所在行的【上一行】處開始插入:O
從游標當前所在位置的【前】一個字元處開始插入:i
從游標當前所在位置的【後】一個字元處開始插入:a
tips:i (insert)是在當前位置插入,a (append)表示是在後面追加
2 vim刪除命令
在命令模式下按以下按鍵可執行刪除操作,具體包括:
刪除從游標所在位置到當前【單詞結束】部分的內容並進入插入模式:cw、cW
刪除從游標所在位置到當前【單詞開始】部分的內容並進入插入模式:cb、cB
刪除從游標所在位置到當前【單詞結束】部分的內容但不進入插入模式:dw、dW
刪除從游標所在位置到當前【單詞開始】部分的內容但不進入插入模式:db、dB
刪除游標位置的【一個】字元:x
刪除當前游標所在【行】:dd
刪除從游標所在位置到當前【行首】的內容:d0
刪除從游標所在位置到當前【行尾】的內容:d$
tips:
(1) Vim的命令中,0 表示行首,$ 表示行尾,更多內容可參考卡拉圖Vim操作范圍、文件范圍介紹
(2) w(word)、b(back)命令用於游標移動,具體可參考卡拉圖:vim游標移動命令匯總
(3) cW、cB、dW、dB 命令操作的單詞是以空白字元(空格、Tab)分隔的字元串
刪除當前【段落】從游標位置開始到【段末】的內容:d}
刪除當前【段落】從游標位置開始到【段首】的內容:d{
刪除當前【句子】從游標位置開始到【句末】的內容:d)
刪除當前【句子】從游標位置開始到【句首】的內容:d(
tips:Vim命令中用 ( 和 ) 表示句子,{ 和 } 表示段落
3 vim復制命令、vim粘貼命令
在命令模式下按以下按鍵可執行復制、粘貼操作,具體包括:
將最後一次刪除或復制操作的文本內容粘貼到游標所在字元之【後】:p
將最後一個刪除或復制操作的文本內容粘貼到游標當前字元之【前】:P
復制從游標所在位置到當前【單詞結束】部分的內容:yw
復制游標所在【行】的所有字元 (包含換行符):yy
tips:yyp 操作可以實現復制一整行內容到當前所在行的下一行
4 vim替換命令
在命令模式下按以下按鍵後,再輸入字元可替換原始文件中的內容
一直替換游標所在字元,直到按下[ESC]鍵為止:R
刪除、復制操作的操作單位可以加操作次數,操作對象的范圍為:操作次數 * 操作單位
替換游標當前所在字元一次:r
例如:d3w命令表示刪除三個單詞,10dd命令表示從游標所在行開始刪除後面的十行,更多內容可以參考Vim中的操作符和動作命令。
5 vim撤銷命令、vim回退反撤銷命令
在命令模式下可執行撤銷操作
撤銷最近的一次操作:u
恢復最近的一次操作(取消撤銷):<Ctrl> + r
tips:多次執行u 命令可以連續撤銷最近的操作
6 vim保存命令
在尾行模式下執行以下命令可保存當前編輯的文件內容
保存當前編輯的文件::w
保存當前編輯的文件並退出vim::wq
強制將當前編輯的文件保存::w!
tips:上述操作是在尾行模式下執行的,所以命令都是以:開頭
7 vim另存為命令
在尾行模式下執行命令 :w a.txt 可將vim當前打開的文件另存為新文件a.txt.
tips:w(write) 表示將文件存檔,: 表示尾行模式命令。
8 vim顯示當前文件名的方法
命令 <Ctrl> + g 可顯示當前編輯文件名及行數,可以在不退出 Vim 的情況下了解當前編輯文件的信息,更多內容,可參考30個vim常用命令和使用 vim技巧 。
Vim入門級文件編輯命令匯總就先介紹到這里了,更多Vim文件編輯命令和Vim相關操作可閱讀本站其它文章內容。
Ⅵ 請問vim怎樣在命令模式下插入空格
輸入此命令則游標所在行向右移動一個 tab. 5 輸入此命令則游標後 5 行向右移動一個 tab. :12,24 此命令將12行到14行的數據都向右移動一個 tab. :12,24 此命令將12行到14行的數據都向右移動兩個 tab. 有的人希望 tab 完全用空格代替, 也有的人希望 tab 就是 tab. 沒關系, vim 能 幫助您.以下的配置一般也都先寫入配置文檔中, 免得老敲.
Ⅶ vim移動到行中間是什麼快捷鍵百度不到,所以來問了。
移到位於屏幕中間的行是 M,助記符是 Middle line。
如果是想移到整個文件的中間是 50%,輸入任意數字之後再按 %(shift + 5)就可以跳到相應的文件位置。
上面兩個是移動游標的命令。如果是想把游標所在行置於屏幕中央,是 zz。它不移動游標,而是重繪屏幕,以使游標所在行位於屏幕中間位置。
才注意到,你問的好像是怎麼移到所在行的中間那列。
這個需求在編輯文本的時候好像不常用到。如果你想居中對齊文本,vim 倒是有現成的命令。
一般移動到指定列,是用 | (是 shift + \),比如想移動到第10列,就是10| 直接按就行。如果你能估計屏幕的寬度,或者一行的長度,中間位置大約還是比較好算的。或者如果你能看見你想去的列上是什麼字元,比如是 x,用 fx 也可以移過去。如果游標和中間位置之間不止一個 x,在 fx 後用幾次 ; 就可以了。
如果你要頻繁地做這件事,也不是沒辦法,但略顯復雜。
就比如你是想挪一行文本的正中間,執行以下兩個命令都可以:
:exe "norm " . col("$")/2 . "|"
或
:cal cursor(line("."), col("$")/2)
然後把它們映射到某個鍵上,就方便反復用了。
Ⅷ vim中,將游標移至第60行,並且刪除行尾的15個字元,如何執行命令
答案: 60G$d14hx 或 60G$14hd$
讓我們分開來看,這樣好理解一些,
首先是60G,作用是將游標移到第60行開頭,
其次是$, 作用是移到當前行行尾,如果接著上面的60G來說,即移動到第60行的行尾,
d14h, 這里先說下h,我們都知道在vim中h和l分別是向左或向右移動1個字元,d是刪除命令,所以d14h是向左刪除14個字元,接著上面的說就是從60行行尾向前刪除14個字元,
最後是x,即刪除游標所在字元,因為上面14個字元刪除後游標位於最後一個字元上,所以使和x將最後一個字元刪掉,
至此完成標題的要求。
*.這里最後用的是d14hx而不是d15h,是因為vim中有的移動命令是包含當前字元的,有的不包含,具體可以看下vim文檔的motion.txt.
Ⅸ vim怎麼快速跳到下一個空格
< type="text/javascript"> document.body.on = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文來自CSDN博客,轉載請標明出處:" + location.href; clipboardData.setData("text", text); } }, 100); } }
在vim下可以使用常用的箭頭鍵
但是 還有其它鍵可以讓你更快的達到目標
hjkl 這是代替箭頭鍵功能的
H M L 跳到屏幕的頂上 中間 下方
w 跳到下一個單詞的開始
e 跳到單詞的結束
b 向後跳
gg 跳到文件的開始
G 跳到文件的結束
10gg 或10G 跳到第10行
ta 跳到下一個a 前面
fa 跳到下一個a
大寫的意思相反
另外還有%(跳到文件的%多少) 和|(跳到第幾列) 不過我很少用
上面的都可以加上數字前綴 表示第幾個匹配
另外看文件時 除了pageup pagedown外還有其它的快速鍵
如CTRL-F 向前一頁 CTRL-B 向後一頁
上面不是重要的
CTRL-D 向下半頁 CTRL-U 向上半頁我覺得更實用 這樣看文章時就不會跳轉出錯
另外還有
CTRL-E 向下一行
CTRL-Y 向上一行
^ 行首
$行尾
0 第一個字元
另外上面也作為vim其它命令的定位符 如刪除d
dt)
一直刪除到這行的)
另外 懂了跳轉鍵後 那刪除或是復制時就不再是以行為單位了 可以指定到某個條件
我覺得這是新手成長的必要方法
另外還有ctrl-t ctrl-i ctrl-]
如果已經使用了ctags 或是cscope創建索引文件的話 那看代碼時很是方便
跳轉到函數、變數定義處:
[+ctrl+i 跳轉到函數、變數和#define
[+ctrl+d 跳轉到#define處
ctrl+i 向前跳到前幾次游標位置
ctrl+o 向後跳到後幾次游標位置
函數體跳轉:
[[
]]
[]
][
{}
2009-07-07 17:31 補充
如何選中括弧中的內容 進行:
將游標移至括弧內,按shift+v進入行選模式,然後
i{ - 選小括弧中內容,不包括小括弧
a{ - 選小括弧中內容,包括小括弧
ib - 選中括弧中內容,不包括括弧
ab - 選中括弧中內容,包括括弧
i{ - 選大括弧中內容,不包括大括弧
a{ - 選大括弧中內容,包括大括弧
:h text-objects
下面還有些相關的tips,未全部驗證:
vi{ 選中{}中間的內容,不包括{}
va{ 選中{}中間內容,包括{}
vi( 選中()中間內容
vi< 選中<>中間內容
vi[ 選中[]中間內容
vit 選中中間的內容
vi」 選中」"中間內容
vi』 選中」中間的內容
vis 選中一個句子
vib 選中一個block
viw選中一個單詞
vip 選中一個段落
在normal模式下游標停在某個字元上ga可以查看該字元的ascii碼
#復制刪除粘貼的操作:按V(shift+v),進入可視模式,jk上下選擇需要的行,然後按
y 復制
d 刪除
x 剪切
p 粘貼
可視模式很好用,例如想把兩行的所有單詞變成小寫,按V然後按j或k選中這兩行,按gu即可
#跳到行首按0,但實際更好用的是^, 跳到行首非空白字元
#折行前空出4字元顯示折行標識
set foldcolumn=4
#折疊或展開(在折疊的那一行左右移動游標也可展開折疊)
za
#刪除游標所在行所處的范圍的折疊
zd
#當在:set foldmethod=marker後,折行會把{{{和}}}之間的內容折疊
#不在單詞中間斷行。 設置了這個選項後, 如果一行文字非常長, 無法在一行內顯示完的話,
它會在單詞與單詞間的空白處斷開, 盡量不會把一個單詞分成兩截放在兩個不同的行里。
set lbr
#sw是shiftwidth的縮寫,表縮進列數
fx把游標移動到該行的下個x字元上,這個x也可以是一個漢字,;重復fx操作。Fx把游標移動到該行的上一個x字元上。
gg游標定位到第一行開頭,G定位到最後一行開頭
H游標跳到當前窗口顯示文本的第一行
M游標跳到當前窗口顯示文本的中間一行
L游標跳到當前窗口顯示文本的最後一行
g*查找包含當前單詞的所有單詞(*只查找與當前單詞精確匹配的單詞),
-d游標下跳半屏,文本上滾半屏
-u游標上跳半屏,文本下滾半屏
-e文本向上滾動一行
zz屏幕滾動使得當前行成為屏幕的中間一行
normal模式下按J刪除此行末尾的換行符,從而合並兩行
:e!重新讀進上次保存的此文件內容
:ab myname william_djj
以後再編輯時鍵入myname,然後空格或回車myname串就會被william_djj代替
:r !date
在當前位置插入系統時間(linux下的date命令),同理當前位置插入某文件的內容就是
:r filename
:set ignorecase
查找時取消case sensitive
:set noignorecase
查找時case sensitive
############ 使用tags ###################
以下命令遞歸當前目錄下的所有文件創建tags文件
ctags -R .
vim打開當前目錄下的任意一文件,命令模式下鍵入下面語句以指定剛才創建的tags的位置,以後就可以在不同文件間查閱函數
set tags=..\tags
#分割窗口顯示當前函數的定義
-w ]
##########################################
如果插件目錄下有echofunc.vim,用以下命令生成tags,以後編輯代碼函數名後打「(「時有參數提示。
$ ctags -R –fields=+lS .
:Tlist打開左邊一個taglist的窗口,顯示symbols。要注意的是在windows下如果tags文件路徑中有空格或中文會報找不到tags文件的錯誤,
+w+w 或者+w+left/right 窗口切換
+] 進入游標所指的symbol的定義(如果用滑鼠也是+滑鼠左鍵,跟SI的用法一樣)
+t 返回第一個用+t 跳轉位置,注意+o是跳回上一個視圖,而+t是跳回上一次按+]的位置
#以下命令分裂出一個窗口顯示定義處
ptag 函數名
#以下命令關閉剛才打開的分裂窗口
pclose
#垂直分裂窗口打開一文件
vsplit 文件名
#水平分裂窗口打開一文件
split 文件名
變數名寫成\name表示匹配模式
停在某個括弧上按%,跳到匹配的括弧處,#if跳到匹配的#else或#endif處
set fdm=syntax折疊函數體
雙擊]往後逐個函數跳讀,雙擊[往前逐個函數跳讀
#解決亂碼
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
#在vim下對比兩個文件,原來打開了fnpro.c,現在和fnpro.c.bak對比
#垂直分割
:vert diffsplit fnpro.c.bak
#水平分割
:diffsplit fnpro.c.bak
#跳到下一個不同之處
:]c
#跳到上一個不同之處
:[c
#展開折疊:zo
#折疊:zc
#不論何種情況下-o都可以上一次跳轉的地方
#查看變數和函數的申明
[i
#以下為查看vim環境參數makeprg的值的例子:
:set makeprg?
#重新對文件代碼進行縮進
gg=G
跳 轉 到函數 、變數定義處:
[+ctrl+i 跳 轉 到函數 、變數和#define
[+ctrl+d 跳 轉 到#define處
ctrl+i 向前跳 到前幾次游標位置
ctrl+o 向後跳 到後幾次游標位置
函數 體跳 轉 :
[[
]]
[]
][
{}
2009-07-07 17:31 補充
如何選中括弧中的內容 進行:
將游標移至括弧內,按shift+v進入行選模式,然後
i{ - 選小括弧中內容,不包括小括弧
a{ - 選小括弧中內容,包括小括弧
ib - 選中括弧中內容,不包括括弧
ab - 選中括弧中內容,包括括弧
i{ - 選大括弧中內容,不包括大括弧
a{ - 選大括弧中內容,包括大括弧
:h text-objects
下面還有些相關的tips,未全部驗證:
vi{ 選中{}中間的內容,不包括{}
va{ 選中{}中間內容,包括{}
vi( 選中()中間內容
vi< 選中<>中間內容
vi[ 選中[]中間內容
vit 選中中間的內容
vi」 選中」"中間內容
vi』 選中」中間的內容
vis 選中一個句子
vib 選中一個block
viw選中一個單詞
vip 選中一個段落
Ⅹ vim操作技巧
不知不覺使用vim已經有一些時間了,也算得上真正掌握使用技巧了吧。想不起來當初為什麼去學習這個編輯器,也不記得怎麼學會使用編輯文件,只記得當初按完所有的鍵盤按鍵都沒有退出vim。一顆種子要經過多少風雨才能長成參天大樹,一條小溪要經過多少高山河流才能匯入大海。我們平常學習一樣東西,要經過多少困難,多少挫折,只有自己最清楚。
普通編輯器都可以直接打開文件進行編輯、保存、使用快捷鍵等等,vim也具備這些功能,但是有些功能要在特定模式下才能使用。也是因為這些模式,讓vim學習路線變得特別比較陡峭。vim具有多種模式,每種模式都有特定功能,有時你需要某些功能時,特意切換到指定模式下操作。使用鍵盤就可以隨意切換模式,讓vim不依賴滑鼠操作,使用最小化組合鍵的操作,編輯效率大大提高。
這個模式主要功能,可以使用移動命令,擴大高亮的文本區域。輸入命令將直接作用於選中文本區域。這就相當於你用滑鼠選中一段文本區域,可以使用可以使用命令進行,復制、剪切、修改操作,但是vim並不需要滑鼠。
這個模式要在可視模式下才能進入,可以直接使用退格鍵或者空格鍵刪除選中文本區域,或者直接輸入新的文本,替換選中高亮區域進入插入模式。
平常在使用vim主要是在普通模式、插入模式、可視模式、命令模式進行操作,掌握這里基本就可以熟悉使用vim了。
掌握這些快捷鍵,移動游標得時候,手機基本不會離開核心鍵盤區,有沒有像 w , a , s , d 移動角色的感覺🙂。
要想編寫文本內容,還必須在插入模式下進行操作,以下命令由普通模式進入到插入模式
d 刪除字元(delete), d 本身沒有任何涵義,但是它可以跟其他命令組合,完成一些快速操作。
<font size=5>操作符 + 動作命令 = 操作</font>
d<span style="color:red;">{motion}</span> 命令可以對一個字元 dl 、一個完整單詞 daw 或
一整個段落 dap 進行操作,它作用的范圍由動作命令決
定。c<span style="color:red;">{motion}</span>、y<span style="color:red;">{motion}</span> 以及其他一些命令也類似,它們被統稱為操作符(operator)。
<center>Vim的操作符命令</center>
看著上面刪除操作,是不是很容易理解操作符 + 動作命令 的模式,比如我們已經知道 daw 刪除整個單詞, gU 反轉大寫,我們就可以使用 gUaw 反轉整個單詞, gUap 反轉整個段落大寫
由於vim中快捷鍵已經被change修改佔用了,只能使用 y 代表復制(yank),粘貼(put)使用 p , d 其實是將內容剪切到寄存器中,剪切實現刪除操作。 ddp 看起來是將兩行位置互換,其實先剪切當前行到寄存器中, p 粘貼到游標下的位置。主要記住使用命令 y + 動作指令 或者 d + 動作指令,都是將文本暫存到寄存器中,使用 p 或者 P 進行粘貼。進行一個小demo練習,將變數field替換下面的函數參數foo。
思路: 先使用 yw 復制field欄位,下移動foo中, dw 刪除foo, P 粘貼。但是你會發現粘貼結構居然還是foo。這是因為 dw 將刪除文本放入寄存器中,覆蓋了上面的變數。我們平常復制,剪切的文本都會暫存再無名寄存器中。
在vim中的刪除、復制、粘貼都是使用寄存器,可以使用 "{registerName} 方式命名寄存器。平時我們使用 dd , yy 命令,不指名寄存器名稱默認使用無名寄存器。倘若沒有指定要使用的寄存器,Vim將預設使用無名寄存器,它可以用雙引號表示(參見 :h quote_quote )。無名寄存器可以使用 "" 表示,比如 ""yy 相當於 yy , ""p 相當於 p
"[0-9]表示數字寄存器,數字越小表示最早在寄存器內容。例如 "0 表示第一個進入寄存器文本, "1 表示第二個進入寄存器內容,類似值棧結構,先進後出排列。可以使用 :reg 查看寄存器中內容。
在win系統中,可以在任意地方Ctrl c復制文本,vim是否可以粘貼非vim中復制內容?當然是可以的。 "+ 表示系統寄存器,可以讀取系統vim之外的系統粘貼板中的內容,可以粘貼內容,復制到系統粘貼板中去。ubuntu上需要安裝vim-gnome,才可以正常使用系統寄存器。
使用粘貼命令前面+寄存器名稱,就可以直接使用專用寄存器中的內容了,例如 "+p 直接粘貼系統剪貼板中的內容。
在插入模式使用 <Ctrl r> + 寄存器名稱粘貼字元文本。例如可以使用 <Ctrl r>" 粘貼無名寄存器中內容。
本文章有部分內容參考 《vim實用技巧第2版》 ,有興趣的同學可以買一個本來看看,真的很不錯哦!