-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 景觀設(shè)計 > 專題列表 > 正文
vi命令跳到最后一行(vi命令跳到行尾)
大家好!今天讓小編來大家介紹下關(guān)于vi命令跳到最后一行的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,相關(guān)業(yè)務(wù)請撥打電話:175-8598-2043,或添加微信:1454722008
文章目錄列表:
一、linux vi從當(dāng)前行復(fù)制到文件尾的命令?
linux vi從當(dāng)前行復(fù)制到文件尾的命令操作方法;
1.轉(zhuǎn)到末行模式,
>SHIFT+;,
>set number(弄出行號),
當(dāng)前行號 co 最后一行的行號。
2.如果當(dāng)前行號 co 最后一行的行號,
>就這樣操作:,
當(dāng)前行號,當(dāng)前行的下一行 co 最后一行的行號,
然后再把當(dāng)前行的下一行,
>這一行給去掉就行了。
二、vim模式與模式切換vim命令模式
vim有三種模式,本文介紹VIM模式與vim模式切換的方法。
vim命令 模式, 編輯模式 , 尾行模式 和文本編輯命令。 Vim編輯模式插入字符,行尾、行首插入,刪除一個字符和刪除整行命令,Vim復(fù)制和粘貼命令,vim替換輸入以及撤銷和反撤銷命令,Vim保存和另存為文件,顯示vim當(dāng)前編輯文件名。 我們使用vim編輯器的常用文件操作主要是:插入、刪除、復(fù)制、粘貼、替換、撤銷、保存、另存為。 在介紹Vim中的上述基本文件操作命令前,需要先介紹下vim的操作模式。因為vim的各種對文件操作命令需要在不同操作模式下使用。 一、Vim三種操作模式 Vim編輯器一共有3種模式,分別為 命令模式 (默認(rèn))、編輯模式、尾行模式。這3種模式的轉(zhuǎn)換關(guān)系如下圖所示。 vim三種模式 1 命令模式(command mode) 命令模式是Vim的默認(rèn)操作模式,當(dāng)使用vim命令打開一個文件時,默認(rèn)進(jìn)入的就是命令模式。不管用戶處于何種模式,只要按下Esc鍵就可使進(jìn)入命令行模式 2 編輯模式(input mode) 只有在vim編輯模式下,才能將鍵盤鍵入的內(nèi)容輸入到當(dāng)前打開的文件中 在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進(jìn)入文本編輯模式 3 尾行模式(last line mode) 尾行模式主要用于保存文件或退出Vim,同時也可以設(shè)置編輯環(huán)境和一些編譯工作,如列出行號(set nu)、尋找字符串(/target)等 在命令模式下,用戶按冒號鍵(:)即可進(jìn)入末行模式下,此時Vi會在顯示窗口的最后一行顯示一個”:“作為末行模式的提示符,等待用戶輸入命令 二、Vim文本編輯命令 約定:在沒有特殊說明的情況下,以下Vim編輯命令部分提到的命令均是在命令模式下使用。 1 vim插入命令 在命令模式下按以下按鍵可進(jìn)入編輯模式,執(zhí)行插入操作,具體包括: 從光標(biāo)當(dāng)前所在行的【行首】處開始插入:I 從光標(biāo)當(dāng)前所在行的【行尾】處開始插入:A 從光標(biāo)當(dāng)前所在行的【下一行】處開始插入:o 從光標(biāo)當(dāng)前所在行的【上一行】處開始插入:O 從光標(biāo)當(dāng)前所在位置的【前】一個字符處開始插入:i 從光標(biāo)當(dāng)前所在位置的【后】一個字符處開始插入:a tips:i (insert)是在當(dāng)前位置插入,a (append)表示是在后面追加 2 vim刪除命令 在命令模式下按以下按鍵可執(zhí)行刪除操作,具體包括: 刪除從光標(biāo)所在位置到當(dāng)前【單詞結(jié)束】部分的內(nèi)容并進(jìn)入插入模式:cw、cW 刪除從光標(biāo)所在位置到當(dāng)前【單詞開始】部分的內(nèi)容并進(jìn)入插入模式:cb、cB 刪除從光標(biāo)所在位置到當(dāng)前【單詞結(jié)束】部分的內(nèi)容但不進(jìn)入插入模式:dw、dW 刪除從光標(biāo)所在位置到當(dāng)前【單詞開始】部分的內(nèi)容但不進(jìn)入插入模式:db、dB 刪除光標(biāo)位置的【一個】字符:x 刪除當(dāng)前光標(biāo)所在【行】:dd 刪除從光標(biāo)所在位置到當(dāng)前【行首】的內(nèi)容:d0 刪除從光標(biāo)所在位置到當(dāng)前【行尾】的內(nèi)容:d$ tips: (1) Vim的命令中,0 表示行首,$ 表示行尾,更多內(nèi)容可參考卡拉圖Vim操作范圍、文件范圍介紹 (2) w(word)、b(back)命令用于光標(biāo)移動,具體可參考卡拉圖:vim光標(biāo)移動命令匯總 (3) cW、cB、dW、dB 命令操作的單詞是以空白字符(空格、Tab)分隔的字符串 刪除當(dāng)前【段落】從光標(biāo)位置開始到【段末】的內(nèi)容:d} 刪除當(dāng)前【段落】從光標(biāo)位置開始到【段首】的內(nèi)容:d{ 刪除當(dāng)前【句子】從光標(biāo)位置開始到【句末】的內(nèi)容:d) 刪除當(dāng)前【句子】從光標(biāo)位置開始到【句首】的內(nèi)容:d( tips:Vim命令中用 ( 和 ) 表示句子,{ 和 } 表示段落 3 vim復(fù)制命令、vim粘貼命令 在命令模式下按以下按鍵可執(zhí)行復(fù)制、粘貼操作,具體包括: 將最后一次刪除或復(fù)制操作的文本內(nèi)容粘貼到光標(biāo)所在字符之【后】:p 將最后一個刪除或復(fù)制操作的文本內(nèi)容粘貼到光標(biāo)當(dāng)前字符之【前】:P 復(fù)制從光標(biāo)所在位置到當(dāng)前【單詞結(jié)束】部分的內(nèi)容:yw 復(fù)制光標(biāo)所在【行】的所有字符 (包含換行符):yy tips:yyp 操作可以實現(xiàn)復(fù)制一整行內(nèi)容到當(dāng)前所在行的下一行 4 vim替換命令 在命令模式下按以下按鍵后,再輸入字符可替換原始文件中的內(nèi)容 一直替換光標(biāo)所在字符,直到按下[ESC]鍵為止:R 刪除、復(fù)制操作的操作單位可以加操作次數(shù),操作對象的范圍為:操作次數(shù) * 操作單位 替換光標(biāo)當(dāng)前所在字符一次:r 例如:d3w命令表示刪除三個單詞,10dd命令表示從光標(biāo)所在行開始刪除后面的十行,更多內(nèi)容可以參考Vim中的操作符和動作命令。 5 vim撤銷命令、vim回退反撤銷命令 在命令模式下可執(zhí)行撤銷操作 撤銷最近的一次操作:u 恢復(fù)最近的一次操作(取消撤銷):<Ctrl> + r tips:多次執(zhí)行u 命令可以連續(xù)撤銷最近的操作 6 vim保存命令 在尾行模式下執(zhí)行以下命令可保存當(dāng)前編輯的文件內(nèi)容 保存當(dāng)前編輯的文件::w 保存當(dāng)前編輯的文件并退出vim::wq 強制將當(dāng)前編輯的文件保存::w! tips:上述操作是在尾行模式下執(zhí)行的,所以命令都是以:開頭 7 vim另存為命令 在尾行模式下執(zhí)行命令 :w a.txt 可將vim當(dāng)前打開的文件另存為新文件a.txt. tips:w(write) 表示將文件存檔,: 表示尾行模式命令。 8 vim顯示當(dāng)前文件名的方法 命令 <Ctrl> + g 可顯示當(dāng)前編輯文件名及行數(shù),可以在不退出 Vim 的情況下了解當(dāng)前編輯文件的信息,更多內(nèi)容,可參考30個vim常用命令和使用 vim技巧 。 Vim入門級文件編輯命令匯總就先介紹到這里了,更多Vim文件編輯命令和Vim相關(guān)操作可閱讀本站其它文章內(nèi)容。三、在Linux系統(tǒng)的Vim中如何寫入?
vim編輯器的三種模式:一般模式、編輯模式和命令行模式。
在一般模式中可以進(jìn)行刪除、復(fù)制和粘貼的功能,但是無法編輯文件內(nèi)容。從一般模式切換到編輯模式可以按下i、I、o、O、a、A、r、R鍵。按下Esc鍵可以回到一般模式。在一般模式中輸入:、/、?三個中的任意一個可以將光標(biāo)移到最下面的一行。在這個模式中可以提供查找數(shù)據(jù)的操作,而讀取、保存、大量替換字符、離開vii、顯示行號等操作則是在此模式中完成的。需要注意的是,編輯模式與命令行模式之間是不能互相切換的。
下面列出平時用的最多的vi命令:
移動光標(biāo)的方法:
[Ctrl]+[f]:屏幕向下移動一頁,相當(dāng)于[PageDown]按鍵。
[Ctrl]+[b]:屏幕向上移動一頁,相當(dāng)于[PageUp]按鍵。
0或功能鍵[Home]:移動到這一行的最前面字符處。
$或功能鍵[End]:移動到這一行的最后面字符處。
G:移動到這個文件的最后一行。
gg:移動到這個文件的第一行,相當(dāng)于1G.
N[Enter]:N為數(shù)字,光標(biāo)向下移動N行。
查找和替換:
/word:向下尋找一個名稱為word的字符串。
?word:向上尋找一個名稱為word的字符串。
:n1,n2s/word1/word2/g:在第n1行和n2行之間尋找word1這個字符串,并且將其替換為word2.
:1,$s/word1/word2/g:從第一行到最后一行尋找word1這個字符串,并且將其替換為word2.
:1,$s/word1/word2/gc:從第一行到最后一行尋找word1這個字符串,并且將其替換為word2.且在替換前顯示提示字符給用戶確認(rèn)是否需要替換。
刪除、復(fù)制和粘貼:
x,X:在一行字中,x為向后刪除一個字符(相當(dāng)于[Del]鍵),X為向前刪除一個字符(相當(dāng)于[Backspace])。
dd:刪除光標(biāo)所在的一整行。
ndd:刪除光標(biāo)所在的向下n行。
yy:復(fù)制光標(biāo)所在的一行。
nyy:復(fù)制光標(biāo)所在的向下n行。
p,P:p為將已復(fù)制的內(nèi)容在光標(biāo)的下一行粘貼,P則為粘貼在光標(biāo)的上一行。
u:復(fù)原前一個操作。
[Ctrl]+r:重做上一個操作。
.:小數(shù)點,重復(fù)前一個操作。
根據(jù)具體問題類型,進(jìn)行步驟拆解/原因原理分析/內(nèi)容拓展等。
具體步驟如下:/導(dǎo)致這種情況的原因主要是??
四、vim怎么快速跳到下一個空格
< type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:" + location.href; clipboardData.setData("text", text); } }, 100); } }
在vim下可以使用常用的箭頭鍵
但是 還有其它鍵可以讓你更快的達(dá)到目標(biāo)
hjkl 這是代替箭頭鍵功能的
H M L 跳到屏幕的頂上 中間 下方
w 跳到下一個單詞的開始
e 跳到單詞的結(jié)束
b 向后跳
gg 跳到文件的開始
G 跳到文件的結(jié)束
10gg 或10G 跳到第10行
ta 跳到下一個a 前面
fa 跳到下一個a
大寫的意思相反
另外還有%(跳到文件的%多少) 和|(跳到第幾列) 不過我很少用
上面的都可以加上數(shù)字前綴 表示第幾個匹配
另外看文件時 除了pageup pagedown外還有其它的快速鍵
如CTRL-F 向前一頁 CTRL-B 向后一頁
上面不是重要的
CTRL-D 向下半頁 CTRL-U 向上半頁我覺得更實用 這樣看文章時就不會跳轉(zhuǎn)出錯
另外還有
CTRL-E 向下一行
CTRL-Y 向上一行
^ 行首
$行尾
0 第一個字符
另外上面也作為vim其它命令的定位符 如刪除d
dt)
一直刪除到這行的)
另外 懂了跳轉(zhuǎn)鍵后 那刪除或是復(fù)制時就不再是以行為單位了 可以指定到某個條件
我覺得這是新手成長的必要方法
另外還有ctrl-t ctrl-i ctrl-]
如果已經(jīng)使用了ctags 或是cscope創(chuàng)建索引文件的話 那看代碼時很是方便
跳轉(zhuǎn)到函數(shù)、變量定義處:
[+ctrl+i 跳轉(zhuǎn)到函數(shù)、變量和#define
[+ctrl+d 跳轉(zhuǎn)到#define處
ctrl+i 向前跳到前幾次光標(biāo)位置
ctrl+o 向后跳到后幾次光標(biāo)位置
函數(shù)體跳轉(zhuǎn):
[[
]]
[]
][
{}
2009-07-07 17:31 補充
如何選中括號中的內(nèi)容 進(jìn)行:
將光標(biāo)移至括號內(nèi),按shift+v進(jìn)入行選模式,然后
i{ - 選小括號中內(nèi)容,不包括小括號
a{ - 選小括號中內(nèi)容,包括小括號
ib - 選中括號中內(nèi)容,不包括括號
ab - 選中括號中內(nèi)容,包括括號
i{ - 選大括號中內(nèi)容,不包括大括號
a{ - 選大括號中內(nèi)容,包括大括號
:h text-objects
下面還有些相關(guān)的tips,未全部驗證:
vi{ 選中{}中間的內(nèi)容,不包括{}
va{ 選中{}中間內(nèi)容,包括{}
vi( 選中()中間內(nèi)容
vi< 選中<>中間內(nèi)容
vi[ 選中[]中間內(nèi)容
vit 選中中間的內(nèi)容
vi” 選中”"中間內(nèi)容
vi’ 選中”中間的內(nèi)容
vis 選中一個句子
vib 選中一個block
viw選中一個單詞
vip 選中一個段落
在normal模式下光標(biāo)停在某個字符上ga可以查看該字符的ascii碼
#復(fù)制刪除粘貼的操作:按V(shift+v),進(jìn)入可視模式,jk上下選擇需要的行,然后按
y 復(fù)制
d 刪除
x 剪切
p 粘貼
可視模式很好用,例如想把兩行的所有單詞變成小寫,按V然后按j或k選中這兩行,按gu即可
#跳到行首按0,但實際更好用的是^, 跳到行首非空白字符
#折行前空出4字符顯示折行標(biāo)識
set foldcolumn=4
#折疊或展開(在折疊的那一行左右移動光標(biāo)也可展開折疊)
za
#刪除光標(biāo)所在行所處的范圍的折疊
zd
#當(dāng)在:set foldmethod=marker后,折行會把{{{和}}}之間的內(nèi)容折疊
#不在單詞中間斷行。 設(shè)置了這個選項后, 如果一行文字非常長, 無法在一行內(nèi)顯示完的話,
它會在單詞與單詞間的空白處斷開, 盡量不會把一個單詞分成兩截放在兩個不同的行里。
set lbr
#sw是shiftwidth的縮寫,表縮進(jìn)列數(shù)
fx把光標(biāo)移動到該行的下個x字符上,這個x也可以是一個漢字,;重復(fù)fx操作。Fx把光標(biāo)移動到該行的上一個x字符上。
gg光標(biāo)定位到第一行開頭,G定位到最后一行開頭
H光標(biāo)跳到當(dāng)前窗口顯示文本的第一行
M光標(biāo)跳到當(dāng)前窗口顯示文本的中間一行
L光標(biāo)跳到當(dāng)前窗口顯示文本的最后一行
g*查找包含當(dāng)前單詞的所有單詞(*只查找與當(dāng)前單詞精確匹配的單詞),
-d光標(biāo)下跳半屏,文本上滾半屏
-u光標(biāo)上跳半屏,文本下滾半屏
-e文本向上滾動一行
zz屏幕滾動使得當(dāng)前行成為屏幕的中間一行
normal模式下按J刪除此行末尾的換行符,從而合并兩行
:e!重新讀進(jìn)上次保存的此文件內(nèi)容
:ab myname william_djj
以后再編輯時鍵入myname,然后空格或回車myname串就會被william_djj代替
:r !date
在當(dāng)前位置插入系統(tǒng)時間(linux下的date命令),同理當(dāng)前位置插入某文件的內(nèi)容就是
:r filename
:set ignorecase
查找時取消case sensitive
:set noignorecase
查找時case sensitive
############ 使用tags ###################
以下命令遞歸當(dāng)前目錄下的所有文件創(chuàng)建tags文件
ctags -R .
vim打開當(dāng)前目錄下的任意一文件,命令模式下鍵入下面語句以指定剛才創(chuàng)建的tags的位置,以后就可以在不同文件間查閱函數(shù)
set tags=..\tags
#分割窗口顯示當(dāng)前函數(shù)的定義
-w ]
##########################################
如果插件目錄下有echofunc.vim,用以下命令生成tags,以后編輯代碼函數(shù)名后打“(“時有參數(shù)提示。
$ ctags -R –fields=+lS .
:Tlist打開左邊一個taglist的窗口,顯示symbols。要注意的是在windows下如果tags文件路徑中有空格或中文會報找不到tags文件的錯誤,
+w+w 或者+w+left/right 窗口切換
+] 進(jìn)入光標(biāo)所指的symbol的定義(如果用鼠標(biāo)也是+鼠標(biāo)左鍵,跟SI的用法一樣)
+t 返回第一個用+t 跳轉(zhuǎn)位置,注意+o是跳回上一個視圖,而+t是跳回上一次按+]的位置
#以下命令分裂出一個窗口顯示定義處
ptag 函數(shù)名
#以下命令關(guān)閉剛才打開的分裂窗口
pclose
#垂直分裂窗口打開一文件
vsplit 文件名
#水平分裂窗口打開一文件
split 文件名
變量名寫成\name表示匹配模式
停在某個括號上按%,跳到匹配的括號處,#if跳到匹配的#else或#endif處
set fdm=syntax折疊函數(shù)體
雙擊]往后逐個函數(shù)跳讀,雙擊[往前逐個函數(shù)跳讀
#解決亂碼
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
#在vim下對比兩個文件,原來打開了fnpro.c,現(xiàn)在和fnpro.c.bak對比
#垂直分割
:vert diffsplit fnpro.c.bak
#水平分割
:diffsplit fnpro.c.bak
#跳到下一個不同之處
:]c
#跳到上一個不同之處
:[c
#展開折疊:zo
#折疊:zc
#不論何種情況下-o都可以上一次跳轉(zhuǎn)的地方
#查看變量和函數(shù)的申明
[i
#以下為查看vim環(huán)境參數(shù)makeprg的值的例子:
:set makeprg?
#重新對文件代碼進(jìn)行縮進(jìn)
gg=G
跳 轉(zhuǎn) 到函數(shù) 、變量定義處:
[+ctrl+i 跳 轉(zhuǎn) 到函數(shù) 、變量和#define
[+ctrl+d 跳 轉(zhuǎn) 到#define處
ctrl+i 向前跳 到前幾次光標(biāo)位置
ctrl+o 向后跳 到后幾次光標(biāo)位置
函數(shù) 體跳 轉(zhuǎn) :
[[
]]
[]
][
{}
2009-07-07 17:31 補充
如何選中括號中的內(nèi)容 進(jìn)行:
將光標(biāo)移至括號內(nèi),按shift+v進(jìn)入行選模式,然后
i{ - 選小括號中內(nèi)容,不包括小括號
a{ - 選小括號中內(nèi)容,包括小括號
ib - 選中括號中內(nèi)容,不包括括號
ab - 選中括號中內(nèi)容,包括括號
i{ - 選大括號中內(nèi)容,不包括大括號
a{ - 選大括號中內(nèi)容,包括大括號
:h text-objects
下面還有些相關(guān)的tips,未全部驗證:
vi{ 選中{}中間的內(nèi)容,不包括{}
va{ 選中{}中間內(nèi)容,包括{}
vi( 選中()中間內(nèi)容
vi< 選中<>中間內(nèi)容
vi[ 選中[]中間內(nèi)容
vit 選中中間的內(nèi)容
vi” 選中”"中間內(nèi)容
vi’ 選中”中間的內(nèi)容
vis 選中一個句子
vib 選中一個block
viw選中一個單詞
vip 選中一個段落
以上就是小編對于vi命令跳到最后一行問題和相關(guān)問題的解答了,如有疑問,可撥打網(wǎng)站上的電話,或添加微信。
推薦閱讀:
vi設(shè)計的組成要素(vi設(shè)計構(gòu)成)
主播去杭州發(fā)展的優(yōu)勢是什么(在杭州的主播)