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

    vi命令如何切換到指定行(vi命令怎么換行)

    發(fā)布時間:2023-04-11 01:34:57     稿源: 創(chuàng)意嶺    閱讀: 97        

    大家好!今天讓小編來大家介紹下關于vi命令如何切換到指定行的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

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

    文章目錄列表:

    vi命令如何切換到指定行(vi命令怎么換行)

    一、VI 編輯器基本操作及快捷鍵

    在系統(tǒng)提示符號輸入vi及文件名稱后,就進入vi全屏幕編輯畫面:

      $ vi myfile

    不過有一點要特別注意,就是您進入vi之后,是處于 命令行模式(command mode) ,您要切換到 插入模式(Insert mode) 才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動光標,結果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi后,先不要亂動,轉換到 插入模式(Insert mode) 再說吧!

    在 命令行模式(command mode) 下按一下字母 i 就可以進入 插入模式(Insert mode) ,這時候你就可以開始輸入文字了。

    您目前處于 插入模式(Insert mode) ,您就只能一直輸入文字,如果您發(fā)現(xiàn)輸錯了字!想用光標鍵往回移動,將該字刪除,就要先按一下 ESC 鍵轉到 命令行模式(command mode) 再刪除文字。

    在 命令行模式(command mode) 下,按一下 : 冒號鍵進入 Last line mode ,例如:

    : w filename (輸入 w filename 將文章以指定的文件名filename保存)

    : wq (輸入 wq ,存盤并退出vi)

    : q! (輸入 q! , 不存盤強制退出vi)

    按 i 切換進入插入模式 insert mode ,按"i"進入插入模式后是從光標當前位置開始輸入文件;

    按 a 進入插入模式后,是從目前光標所在位置的下一個位置開始輸入文字;

    按 o 進入插入模式后,是插入新的一行,從行首開始輸入文字。

    按 ESC 鍵。

    vi可以直接用鍵盤上的光標來上下左右移動,但正規(guī)的vi是用小寫英文字母 h 、 j 、 k 、 l ,分別控制光標左、下、上、右移一格。

    按 ctrl + b :屏幕往"后"移動一頁。

    按 ctrl + f :屏幕往"前"移動一頁。

    按 ctrl + u :屏幕往"后"移動半頁。

    按 ctrl + d :屏幕往"前"移動半頁。

    按數(shù)字 0 :移到文章的開頭。

    按 G :移動到文章的最后。

    按 $ :移動到光標所在行的"行尾"。

    按 ^ :移動到光標所在行的"行首"

    按 w :光標跳到下個字的開頭

    按 e :光標跳到下個字的字尾

    按 b :光標回到上個字的開頭

    按 #l :光標移到該行的第#個位置,如:5l,56l。

    x :每按一次,刪除光標所在位置的"后面"一個字符。

    #x :例如, 6x 表示刪除光標所在位置的"后面"6個字符。

    X :大寫的X,每按一次,刪除光標所在位置的"前面"一個字符。

    #X :例如, 20X 表示刪除光標所在位置的"前面"20個字符。

    dd :刪除光標所在行。

    #dd :從光標所在行開始刪除#行

    yw :將光標所在之處到字尾的字符復制到緩沖區(qū)中。

    #yw :復制#個字到緩沖區(qū)

    yy :復制光標所在行到緩沖區(qū)。

    #yy :例如, 6yy 表示拷貝從光標所在的該行"往下數(shù)"6行文字。

    p :將緩沖區(qū)內的字符貼到光標所在位置。注意:所有與"y"有關的復制命令都必須與"p"配合才能完成復制與粘貼功能。

    r :替換光標所在處的字符。

    R :替換光標所到之處的字符,直到按下 ESC 鍵為止。

    u :如果您誤執(zhí)行一個命令,可以馬上按下 u ,回到上一個操作。按多次"u"可以執(zhí)行多次回復。

    cw :更改光標所在處的字到字尾處

    c#w :例如, c3w 表示更改3個字

    ctrl + g 列出光標所在行的行號。

    #G :例如, 15G ,表示移動光標至文章的第15行行首。

    在使用 last line mode 之前,請記住先按 ESC 鍵確定您已經處于 command mode 下后,再按 : 冒號即可進入 last line mode 。

    set nu :輸入 set nu 后,會在文件中的每一行前面列出行號。

    # : # 號表示一個數(shù)字,在冒號后輸入一個數(shù)字,再按回車鍵就會跳到該行了,如輸入數(shù)字15,再回車,就會跳到文章的第15行。

    /關鍵字 :先按 / 鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按 n 會往后尋找到您要的關鍵字為止。

    ?關鍵字 :先按 ? 鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按 n 會往前尋找到您要的關鍵字為止。

    w :在冒號輸入字母 w 就可以將文件保存起來。

    q :按 q 就是退出,如果無法離開vi,可以在 q 后跟一個 ! 強制離開vi。

    qw :一般建議離開時,搭配 w 一起使用,這樣在退出的時候還可以保存文件。

    h

    左移光標一個字符

    l

    右移光標一個字符

    k

    光標上移一行

    j

    光標下移一行

    ^

    光標移動至行首

    0

    數(shù)字"0",光標移至文章的開頭

    G

    光標移至文章的最后

    $

    光標移動至行尾

    Ctrl+f

    向前翻屏

    Ctrl+b

    向后翻屏

    Ctrl+d

    向前翻半屏

    Ctrl+u

    向后翻半屏

    i

    在光標位置前插入字符

    a

    在光標所在位置的后一個字符開始增加

    o

    插入新的一行,從行首開始輸入

    ESC

    從輸入狀態(tài)退至命令狀態(tài)

    x

    刪除光標后面的字符

    #x

    刪除光標后的#個字符

    X

    (大寫X),刪除光標前面的字符

    #X

    刪除光標前面的#個字符

    dd

    刪除光標所在的行

    #dd

    刪除從光標所在行數(shù)的#行

    yw

    復制光標所在位置的一個字

    #yw

    復制光標所在位置的#個字

    yy

    復制光標所在位置的一行

    #yy

    復制從光標所在行數(shù)的#行

    p

    粘貼

    u

    取消操作

    cw

    更改光標所在位置的一個字

    #cw

    更改光標所在位置的#個字

    w filename

    儲存正在編輯的文件為filename

    wq filename

    儲存正在編輯的文件為filename,并退出vi

    q!

    放棄所有修改,退出vi

    set nu

    顯示行號

    / 或 ?

    查找,在/后輸入要查找的內容

    n

    與/或?一起使用,如果查找的內容不是想要找的關鍵字,按n或向后(與/聯(lián)用)或向前(與?聯(lián)用)繼續(xù)查找,直到找到為止。

    對于第一次用vi,有幾點注意要提醒一下:

    1、用vi打開文件后,是處于 命令行模式(command mode) ,您要切換到 插入模式(Insert mode) 才能夠輸入文字。切換方法:在 命令行模式(command mode) 下按一下字母 i 就可以進入 插入模式(Insert mode) ,這時候你就可以開始輸入文字了。

    2、編輯好后,需從插入模式切換為命令行模式才能對文件進行保存,切換方法:按 ESC 鍵。

    3、保存并退出文件:在命令模式下輸入:wq即可!(別忘了wq前面的)

    vi使用手冊

    VI是unix上最常用的文本編輯工具,作為unix軟件測試人員,有必要熟練掌握它。

    進入vi的命令

    vi filename :打開或新建文件,并將光標置于第一行首

    vi +n filename :打開文件,并將光標置于第n行首

    vi + filename :打開文件,并將光標置于最后一行首

    vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處

    vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename

    vi filename…filename :打開多個文件,依次編輯

    移動光標類命令

    h :光標左移一個字符

    l :光標右移一個字符

    space:光標右移一個字符

    Backspace:光標左移一個字符

    k或Ctrl+p:光標上移一行

    j或Ctrl+n :光標下移一行

    Enter :光標下移一行

    w或W :光標右移一個字至字首

    b或B :光標左移一個字至字首

    e或E :光標右移一個字j至字尾

    ) :光標移至句尾

    ( :光標移至句首

    }:光標移至段落開頭

    {:光標移至段落結尾

    nG:光標移至第n行首

    n+:光標下移n行

    n-:光標上移n行

    n :光標移至當前行尾

    屏幕翻滾類命令

    Ctrl+u:向文件首翻半屏

    Ctrl+d:向文件尾翻半屏

    Ctrl+f:向文件尾翻一屏

    Ctrl+b;向文件首翻一屏

    nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

    插入文本類命令

    i :在光標前

    I :在當前行首

    a:光標后

    A:在當前行尾

    o:在當前行之下新開一行

    O:在當前行之上新開一行

    r:替換當前字符

    R:替換當前字符及其后的字符,直至按ESC鍵

    s:從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符

    S:刪除指定數(shù)目的行,并以所輸入文本代替之

    ncw或nCW:修改指定數(shù)目的字

    nCC:修改指定數(shù)目的行

    刪除命令

    ndw或ndW:刪除光標處開始及其后的n-1個字

    do:刪至行首

    d$:刪至行尾

    ndd:刪除當前行及其后n-1行

    x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的

    Ctrl+u:刪除輸入方式下所輸入的文本

    搜索及替換命令 :

    /pattern:從光標開始處向文件尾搜索pattern

    ?pattern:從光標開始處向文件首搜索pattern

    n:在同一方向重復上一次搜索命令

    N:在反方向上重復上一次搜索命令

    :s/p1/p2/g:將當前行中所有p1均用p2替代

    :n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代

    :g/p1/s//p2/g:將文件中所有p1均用p2替換

    選項設置

    all:列出所有選項設置情況

    term:設置終端類型

    ignorance:在搜索中忽略大小寫

    list:顯示制表位(Ctrl+I)和行尾標志($)

    number:顯示行號

    report:顯示由面向行的命令修改過的數(shù)目

    terse:顯示簡短的警告信息

    warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息

    nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符

    nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始

    mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

    最后行方式命令

    :n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下

    :n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下

    :n1,n2 d :將n1行到n2行之間的內容刪除

    :w :保存當前文件

    :e filename:打開文件filename進行編輯

    :x:保存當前文件并退出

    :q:退出vi

    :q!:不保存文件并退出vi

    :!command:執(zhí)行shell命令command

    :n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之,若不指

    定n1,n2,則表示將整個文件內容作為command的輸入

    :r!command:將命令command的輸出結果放到當前行 。

    二、vi 命令大全

    vi filename   打開或新建文檔,并將光標置于第一行行首

    vi +n filename   打開文件,并將光標置于第n行首

    vi + filename   打開文件,并將光標置于最后一行首

    vi +/pattern filename   打開文件,并將光標置于第一個與pattern匹配的串處

    vi -r filename   在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename

    vi filename....filename   打開多個文件,依次進行編輯

    w   保存當前文件

    w /tmp1   另存為/tmp1

    20,59w /tmp1   僅將20-59行之間的內存另存為/tmp1

    x 或 wq   保存退出

    q   退出vi

    q!   退出不保存 >

    !command   執(zhí)行shell命令command

    n1,n2 w !command   將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入

    r !command   將命令command的輸出結果放到當前行

    w !sudo tee %   保存沒權限時,可獲取權限再保存

    h  光標左移一個字符

    l  光標右移一個字符

    space  光標右移一個字符

    Backspace  光標左移一個字符

    k Ctrl+p   光標上移一行

    j Ctrl+n   光標下移一行

    Enter   光標下移一行

    w W   光標右移一個字至字首

    b B   光標左移一個字至字首

    e E   光標右移一個字至字尾

    )   光標移至句尾

    (   光標移至句首

    }   光標移至段落開頭

    {   光標移至段落結尾

    nG   光標移至第n行首

    n+   光標下移n行

    n-   光標上移n行

    n$   光標移至第n行尾

    H   光標移至屏幕頂行

    M   光標移至屏幕中間行

    L   光標移至屏幕最后行

    0   (注意是數(shù)字零)光標移至當前行首

    $   光標移至當前行尾

    Ctrl+u   向文件首翻半屏

    Ctrl+d   向文件尾翻半屏

    Ctrl+f   向文件尾翻一屏

    Ctrl+b   向文件首翻一屏

    nz   將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部

    i   在光標前

    I   在當前行首

    a   光標后

    A   在當前行尾

    o   在當前行之下新開一行

    O   在當前行之上新開一行

    r   替換當前字符

    R   替換當前字符及其后的字符,直至按ESC鍵

    s   從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符

    S   刪除指定數(shù)目的行,并以所輸入文本代替

    ncw nCW   修改指定數(shù)目的字

    nCC   修改指定數(shù)目的行

    ndw ndW   刪除光標處開始及其后的n-1個字

    do   刪至行首

    d$   刪至行尾

    ndd   刪除當前行及其后n-1行

    x X   刪除一個字符,x刪除光標后的,而X刪除光標前的

    Ctrl+u   刪除輸入方式下所輸入的文本

    n1,n2 d   將n1行到n2行之間的內容刪除

    %d   刪除全部內容

    1,$d   刪除全部內容

    yy   復制當前行

    nyy   復制當前行開始的n行

      先按 v 然后方向鍵選擇區(qū)域,按 y 復制選中行

    dd   剪切當前行

    p (小)   在當前光標處下面粘貼內容

    P (大)   在當前光標處上面粘貼內容

    n1,n2 co n3   將n1行到n2行之間的內容拷貝到第n3行下

    n1,n2 m n3   將n1行到n2行之間的內容移至到第n3行下

    /abc   從光標開始處向文件尾搜索abc

    ?abc   從光標開始處向文件首搜索abc

    //abc   從光標開始處向文件尾搜索/abc,其中/是轉義

    n   在同一方向重復上一次搜索命令

    N   在反方向上重復上一次搜索命令

    s/vivian/sky/   替換當前行第一個 vivian 為 sky

    s/vivian/sky/g   替換當前行所有 vivian 為 sky

    n,$s/vivian/sky/   替換第 n 行開始到最后一行中每一行的第一個 vivian 為 sky

    n,$s/vivian/sky/g   替換第 n 行開始到最后一行中每一行所有 vivian 為sky

    %s/vivian/sky/g   (等同于 g/vivian/s//sky/) 替換每一行的每一個 vivian 為 sky

    s#vivian/#sky#   替換當前行第一個 vivian/ 為 sky/(可以使用 # 或 + 作為分隔符,此時中間出現(xiàn)的 / 不會作為分隔符)

    s/p1/p2/g   將當前行中所有p1均用p2替代

    n1,n2s/p1/p2/g   將第n1至n2行中所有p1均用p2替代

    g/p1/s//p2/g   將文件中所有p1均用p2替換

    "?nyy   將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字

    "?nyw   將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數(shù)字

    "?nyl   將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數(shù)字

    "?p   取出寄存器?中的內容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數(shù)字

    ndd   將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中

    set number   顯示行號

    set number!   不顯示行號,其它選項同理加!號

    set all   列出所有選項設置情況

    set term   設置終端類型

    set ignorance   在搜索中忽略大小寫

    set list   顯示制表位(Ctrl+I)和行尾標志($)

    set report   顯示由面向行的命令修改過的數(shù)目

    set terse   顯示簡短的警告信息

    set warn   在轉到別的文件時若沒保存當前文件則顯示NO write信息

    set nomagic   允許在搜索模式中,使用前面不帶“”的特殊字符

    set nowrapscan   禁止vi在搜索到達文件兩端時,又從另一端開始

    set mesg   允許vi顯示其他用戶用write寫到自己終端上的信息

    參考文獻:

    https://www.cnblogs.com/mondol/p/vi-examples.html

    三、linux使用vi如何跳轉到指定行

    :5

    就跳去第5行了

    四、vim操作技巧

    不知不覺使用vim已經有一些時間了,也算得上真正掌握使用技巧了吧。想不起來當初為什么去學習這個編輯器,也不記得怎么學會使用編輯文件,只記得當初按完所有的鍵盤按鍵都沒有退出vim。一顆種子要經過多少風雨才能長成參天大樹,一條小溪要經過多少高山河流才能匯入大海。我們平常學習一樣東西,要經過多少困難,多少挫折,只有自己最清楚。

    普通編輯器都可以直接打開文件進行編輯、保存、使用快捷鍵等等,vim也具備這些功能,但是有些功能要在特定模式下才能使用。也是因為這些模式,讓vim學習路線變得特別比較陡峭。vim具有多種模式,每種模式都有特定功能,有時你需要某些功能時,特意切換到指定模式下操作。使用鍵盤就可以隨意切換模式,讓vim不依賴鼠標操作,使用最小化組合鍵的操作,編輯效率大大提高。

    這個模式主要功能,可以使用移動命令,擴大高亮的文本區(qū)域。輸入命令將直接作用于選中文本區(qū)域。這就相當于你用鼠標選中一段文本區(qū)域,可以使用可以使用命令進行,復制、剪切、修改操作,但是vim并不需要鼠標。

    這個模式要在可視模式下才能進入,可以直接使用退格鍵或者空格鍵刪除選中文本區(qū)域,或者直接輸入新的文本,替換選中高亮區(qū)域進入插入模式。

    平常在使用vim主要是在普通模式、插入模式、可視模式、命令模式進行操作,掌握這里基本就可以熟悉使用vim了。

    掌握這些快捷鍵,移動光標得時候,手機基本不會離開核心鍵盤區(qū),有沒有像 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> 以及其他一些命令也類似,它們被統(tǒng)稱為操作符(operator)。

    <center>Vim的操作符命令</center>

    看著上面刪除操作,是不是很容易理解操作符 + 動作命令 的模式,比如我們已經知道 daw 刪除整個單詞, gU 反轉大寫,我們就可以使用 gUaw 反轉整個單詞, gUap 反轉整個段落大寫

    由于vim中copy快捷鍵已經被change修改占用了,只能使用 y 代表復制(yank),粘貼(put)使用 p , d 其實是將內容剪切到寄存器中,剪切實現(xiàn)刪除操作。 ddp 看起來是將兩行位置互換,其實先剪切當前行到寄存器中, p 粘貼到光標下的位置。主要記住使用命令 y + 動作指令 或者 d + 動作指令,都是將文本暫存到寄存器中,使用 p 或者 P 進行粘貼。進行一個小demo練習,將變量field替換下面的函數(shù)參數(shù)foo。

    思路: 先使用 yw 復制field字段,下移動foo中, dw 刪除foo, P 粘貼。但是你會發(fā)現(xiàn)粘貼結構居然還是foo。這是因為 dw 將刪除文本放入寄存器中,覆蓋了上面copy的變量。我們平常復制,剪切的文本都會暫存再無名寄存器中。

    在vim中的刪除、復制、粘貼都是使用寄存器,可以使用 "{registerName} 方式命名寄存器。平時我們使用 dd , yy 命令,不指名寄存器名稱默認使用無名寄存器。倘若沒有指定要使用的寄存器,Vim將缺省使用無名寄存器,它可以用雙引號表示(參見 :h quote_quote )。無名寄存器可以使用 "" 表示,比如 ""yy 相當于 yy , ""p 相當于 p

    "[0-9]表示數(shù)字寄存器,數(shù)字越小表示最早在寄存器內容。例如 "0 表示第一個進入寄存器文本, "1 表示第二個進入寄存器內容,類似值棧結構,先進后出排列??梢允褂?:reg 查看寄存器中內容。

    在win系統(tǒng)中,可以在任意地方Ctrl c復制文本,vim是否可以粘貼非vim中復制內容?當然是可以的。 "+ 表示系統(tǒng)寄存器,可以讀取系統(tǒng)vim之外的系統(tǒng)粘貼板中的內容,可以粘貼內容,復制到系統(tǒng)粘貼板中去。ubuntu上需要安裝vim-gnome,才可以正常使用系統(tǒng)寄存器。

    使用粘貼命令前面+寄存器名稱,就可以直接使用專用寄存器中的內容了,例如 "+p 直接粘貼系統(tǒng)剪貼板中的內容。

    在插入模式使用 <Ctrl r> + 寄存器名稱粘貼字符文本。例如可以使用 <Ctrl r>" 粘貼無名寄存器中內容。

    本文章有部分內容參考 《vim實用技巧第2版》 ,有興趣的同學可以買一個本來看看,真的很不錯哦!

    以上就是小編對于vi命令如何切換到指定行問題和相關問題的解答了,如有疑問,可撥打網(wǎng)站上的電話,或添加微信。


    推薦閱讀:

    vis應用到實際

    澳大利亞ChatGPT情感(澳大利亞tripviewlite)

    vi手冊設計過程(vi手冊設計過程日志備注)

    金科景觀設計師(金科景觀設計師怎么樣)

    車用音響品牌排行榜(車用音響品牌排行榜)