HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    vi命令跳到最后一行(vi命令跳到行尾)

    發(fā)布時間:2023-04-07 08:49:47     稿源: 創(chuàng)意嶺    閱讀: 92        

    大家好!今天讓小編來大家介紹下關(guān)于vi命令跳到最后一行的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,相關(guān)業(yè)務(wù)請撥打電話:175-8598-2043,或添加微信:1454722008

    文章目錄列表:

    vi命令跳到最后一行(vi命令跳到行尾)

    一、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使用

    vi三大核心要素(vi核心要素的是)

    vi設(shè)計的組成要素(vi設(shè)計構(gòu)成)

    杭州蕭山別墅推薦(杭州蕭山的別墅)

    主播去杭州發(fā)展的優(yōu)勢是什么(在杭州的主播)