-
當前位置:首頁 > 創(chuàng)意學院 > 景觀設計 > 專題列表 > 正文
vi命令跳到最后一行(vi命令跳到行尾)
大家好!今天讓小編來大家介紹下關于vi命令跳到最后一行的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,相關業(yè)務請撥打電話:175-8598-2043,或添加微信:1454722008
文章目錄列表:
一、linux vi從當前行復制到文件尾的命令?
linux vi從當前行復制到文件尾的命令操作方法;
1.轉到末行模式,
>SHIFT+;,
>set number(弄出行號),
當前行號 co 最后一行的行號。
2.如果當前行號 co 最后一行的行號,
>就這樣操作:,
當前行號,當前行的下一行 co 最后一行的行號,
然后再把當前行的下一行,
>這一行給去掉就行了。
二、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,同時也可以設置編輯環(huán)境和一些編譯工作,如列出行號(set nu)、尋找字符串(/target)等 在命令模式下,用戶按冒號鍵(:)即可進入末行模式下,此時Vi會在顯示窗口的最后一行顯示一個”:“作為末行模式的提示符,等待用戶輸入命令 二、Vim文本編輯命令 約定:在沒有特殊說明的情況下,以下Vim編輯命令部分提到的命令均是在命令模式下使用。 1 vim插入命令 在命令模式下按以下按鍵可進入編輯模式,執(zhí)行插入操作,具體包括: 從光標當前所在行的【行首】處開始插入:I 從光標當前所在行的【行尾】處開始插入:A 從光標當前所在行的【下一行】處開始插入:o 從光標當前所在行的【上一行】處開始插入:O 從光標當前所在位置的【前】一個字符處開始插入:i 從光標當前所在位置的【后】一個字符處開始插入:a tips:i (insert)是在當前位置插入,a (append)表示是在后面追加 2 vim刪除命令 在命令模式下按以下按鍵可執(zhí)行刪除操作,具體包括: 刪除從光標所在位置到當前【單詞結束】部分的內容并進入插入模式: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粘貼命令 在命令模式下按以下按鍵可執(zhí)行復制、粘貼操作,具體包括: 將最后一次刪除或復制操作的文本內容粘貼到光標所在字符之【后】:p 將最后一個刪除或復制操作的文本內容粘貼到光標當前字符之【前】:P 復制從光標所在位置到當前【單詞結束】部分的內容:yw 復制光標所在【行】的所有字符 (包含換行符):yy tips:yyp 操作可以實現復制一整行內容到當前所在行的下一行 4 vim替換命令 在命令模式下按以下按鍵后,再輸入字符可替換原始文件中的內容 一直替換光標所在字符,直到按下[ESC]鍵為止:R 刪除、復制操作的操作單位可以加操作次數,操作對象的范圍為:操作次數 * 操作單位 替換光標當前所在字符一次:r 例如:d3w命令表示刪除三個單詞,10dd命令表示從光標所在行開始刪除后面的十行,更多內容可以參考Vim中的操作符和動作命令。 5 vim撤銷命令、vim回退反撤銷命令 在命令模式下可執(zhí)行撤銷操作 撤銷最近的一次操作:u 恢復最近的一次操作(取消撤銷):<Ctrl> + r tips:多次執(zhí)行u 命令可以連續(xù)撤銷最近的操作 6 vim保存命令 在尾行模式下執(zhí)行以下命令可保存當前編輯的文件內容 保存當前編輯的文件::w 保存當前編輯的文件并退出vim::wq 強制將當前編輯的文件保存::w! tips:上述操作是在尾行模式下執(zhí)行的,所以命令都是以:開頭 7 vim另存為命令 在尾行模式下執(zhí)行命令 :w a.txt 可將vim當前打開的文件另存為新文件a.txt. tips:w(write) 表示將文件存檔,: 表示尾行模式命令。 8 vim顯示當前文件名的方法 命令 <Ctrl> + g 可顯示當前編輯文件名及行數,可以在不退出 Vim 的情況下了解當前編輯文件的信息,更多內容,可參考30個vim常用命令和使用 vim技巧 。 Vim入門級文件編輯命令匯總就先介紹到這里了,更多Vim文件編輯命令和Vim相關操作可閱讀本站其它文章內容。三、在Linux系統(tǒng)的Vim中如何寫入?
vim編輯器的三種模式:一般模式、編輯模式和命令行模式。
在一般模式中可以進行刪除、復制和粘貼的功能,但是無法編輯文件內容。從一般模式切換到編輯模式可以按下i、I、o、O、a、A、r、R鍵。按下Esc鍵可以回到一般模式。在一般模式中輸入:、/、?三個中的任意一個可以將光標移到最下面的一行。在這個模式中可以提供查找數據的操作,而讀取、保存、大量替換字符、離開vii、顯示行號等操作則是在此模式中完成的。需要注意的是,編輯模式與命令行模式之間是不能互相切換的。
下面列出平時用的最多的vi命令:
移動光標的方法:
[Ctrl]+[f]:屏幕向下移動一頁,相當于[PageDown]按鍵。
[Ctrl]+[b]:屏幕向上移動一頁,相當于[PageUp]按鍵。
0或功能鍵[Home]:移動到這一行的最前面字符處。
$或功能鍵[End]:移動到這一行的最后面字符處。
G:移動到這個文件的最后一行。
gg:移動到這個文件的第一行,相當于1G.
N[Enter]:N為數字,光標向下移動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.且在替換前顯示提示字符給用戶確認是否需要替換。
刪除、復制和粘貼:
x,X:在一行字中,x為向后刪除一個字符(相當于[Del]鍵),X為向前刪除一個字符(相當于[Backspace])。
dd:刪除光標所在的一整行。
ndd:刪除光標所在的向下n行。
yy:復制光標所在的一行。
nyy:復制光標所在的向下n行。
p,P:p為將已復制的內容在光標的下一行粘貼,P則為粘貼在光標的上一行。
u:復原前一個操作。
[Ctrl]+r:重做上一個操作。
.:小數點,重復前一個操作。
根據具體問題類型,進行步驟拆解/原因原理分析/內容拓展等。
具體步驟如下:/導致這種情況的原因主要是??
四、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博客,轉載請標明出處:" + 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創(chuàng)建索引文件的話 那看代碼時很是方便
跳轉到函數、變量定義處:
[+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
在當前位置插入系統(tǒng)時間(linux下的date命令),同理當前位置插入某文件的內容就是
:r filename
:set ignorecase
查找時取消case sensitive
:set noignorecase
查找時case sensitive
############ 使用tags ###################
以下命令遞歸當前目錄下的所有文件創(chuàng)建tags文件
ctags -R .
vim打開當前目錄下的任意一文件,命令模式下鍵入下面語句以指定剛才創(chuàng)建的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環(huán)境參數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 選中一個段落
以上就是小編對于vi命令跳到最后一行問題和相關問題的解答了,如有疑問,可撥打網站上的電話,或添加微信。
推薦閱讀:
主播去杭州發(fā)展的優(yōu)勢是什么(在杭州的主播)