zoukankan      html  css  js  c++  java
  • vi基础学习总结

    标签(空格分隔): vi 总结


    vi是几乎所有类Unix/Linux系统下都默认装有的常用文本编辑工具。本文记录初学vi的一些小知识。

    0.界面模式

    在命令行使用“vi”编辑文档时,包含一般模式、命令行模式、编辑模式。
    使用vi filename打开文件,就进入一般模式

    • 一般模式 <-> 命令行模式
      在一般模式界面使用符号“:”、“/”、“?”可以进入命令行模式,反之使用键盘左上角的“Esc”按键就可以从命令行模式回到一般模式。

    • 一般模式 <-> 插入模式
      在一般模式界面按下“i”、“I”、“a”、“A”、“o”、“O”、“r”、“R”字符就可以进入插入模式,反之使用键盘左上角的“Esc”按键就可以从插入模式回到一般模式。其中的字符具体含义如下:

    i:insert,在光标当前处插入
    I:Insert,在光标所在行的行首插入,在第一个非空白字符前插入
    a:append,在光标所在位置之后的一个符后插入
    A:Append,在光标所在行的行尾插入
    o:在光标所在行的下面,另起一行插入
    O:在光标所在行的上面,另起一行插入
    r:replace,替换光标所在位置的那一个字符,只替换一次
    R:Replace,不断替换光标所在位置的字符,每替换字符光标都会往后移动,直到按下“Esc”为止。
    
    • 命令行模式和插入模式不能直接相互进入,需要先进入一般模式才能进入另一个模式。

    1.光标移动/定位

    在一般模式下移动光标情况相对复杂,可以分为以下几种情况。

    • 移动字符
    1)可以使用上下左右的箭头来移动
    2)使用字母
     h:光标左移一个字符的距离
     j:光标向下移动一行
     k:光标向上移动一行
     l:光标右移一个字符的距离
    
    • 移动单词/字
    w:光标往后移动,到达下一个单词(含标点)的词首处
    W:与w同,忽略标点符号
    e:光标往前移动,到达下一个单词(含标点)的词尾处
    E:与e同,忽略标点符号
    b:光标往前移动,达到本单词(含标点)的词首。如果当前位子是空白则达到左边第一个单词的词首
    B:与b同,忽略标点符号
    ge:光标往前移动,到达前一个单词的词尾处
    
    • 行移动
    符号^(shift+数字键6):光标移动到行首
    数字0::光标移动到行首
    符号$(美元符号):光标移动到行尾
    字符组合“g_”:光标移动到行尾
    nh:n为数字,在当前行往左移动n个字符
    nj:n为数字,向下移动n行
    nk:n为数字,向上移动n行
    nl:n为数字,在当前行往右移动n个字符
    N + Enter:n为数字,向下移动n行
    
    • 移动页
    Ctrl + d:向上移动半页                 Ctrl + u:向下移动半页
    Ctrl + f:向上移动一页                 Ctrl + b:向下移动一页
    
    • 全文移动
    gg:光标移动到文件第一行的行首
    G:光标移动到文件最后一行的行首
    nG:n为数字,光标移动到文件第n行的行首
    

    2.编辑操作

    • 复制
    yy:复制光标所在行整行
    nyy:n是数字,复制光标所在行整行及往下的n行
    y1G:复制文件的第一行到光标所在行
    yG:复制光标所在行到文件的最后一行
    y0:复制光标所在行的行首字符到光标所在位置的字符之间的内容
    y$:复制光标所在位置的字符到该行行尾字符之间的内容
    
    • 删除、剪切
    x:删除右边的一个字符,类似键盘的delete键
    X:删除左边的一个字符,类似键盘的BackSpace键
    dd:删除/剪切当前行
    ndd:n是数字,删除/剪切当前行及向下n行的数据
    d1G:删除/剪切文件第一行到光标所在行之间的内容
    dG:删除/剪切光标所在行到文件最后一行之间的内容
    d0:删除/剪切光标所在行行首字符到光标所在字符之间的内容
    d$:删除/剪切光标所在位置的字符到该行的行尾字符之间的内容
    
    • 粘贴
    p:在光标所在行的下一行粘贴数据
    P:在光标所在行的上一行粘贴数据
    

    3.查找

    /word:向下查找字符串“word”
    ?word:向上查找字符串“word”
    n:重复执行前一个查找操作
    N:“反向”执行前一个查找操作,与n相反
    

    4.替换

    r:replace,替换光标所在位置的那一个字符,只替换一次
    R:Replace,不断替换光标所在位置的字符,每替换字符光标都会往后移动,直到按下“Esc”为止。
    “:n1,n2s/old/new/g”:n1和n2是数字,数字n2后的是小写s。表示把第n1行到第n2行之间的字符串“old”都换成“new”。常用“:1,$/old/new/g”
    “:n1,n2s/old/new/gc”:作用同上。最后多了个字符“c”,是confirm的首字母,表示每个操作都会提示确认才会替换
    

    5.选择内容

    类似“视图模式”下的选择,最让人觉得新奇的莫过于块选择了。

    v:字符选择,结合光标的上下左右使用
    V:行选择,结合光标的行上下移动使用
    Ctrl + v:块选择,结合光标移动使用
    

    当完成选择之后,可以进行删除、复制、剪切等操作。

    6.其他常用操作

    • 保存、退出
    “:w”:保存(必须要有文件写权限)
    “:wq”:保存并退出(必须要有文件写权限)
    “:wq!”:保存并强制退出(必须要有文件写权限)
    “:q”:退出(没有修改过文件内容)
    “:q!”:强制退出(会放弃修改)
    ZZ:保存并且退出(必须要有文件写权限)
    “:w filename”:另存为filename文件
    “:n1,n2 w filename”:把文件的第n1行到第n2行内容另存为filename文件
    
    • 导入其他文件内容
    “:r filename”:把文件filename的内容导入到当前文件,插入到光标所在行之后
    
    • 撤销、重复执行前一个操作
    u:撤销前一个操作,即放弃前一个操作的更改
    小数点“.”:重复执行前一个操作,即再做一次
    Ctrl + r:重做前一个操作,可以这样理解,先撤销已做的更改,然后再重复之前的更改。
    J:将下一行数据拉到光标所在行之后,这样相当于剪切下一行后粘贴到该行的行尾,文件行数少1。
    
    • 临时执行Linux命令
    “:! command”:在一般模式下,可临时切换到shell界面执行命令,执行完毕后按下回传就回到文件内的一般模式下。可用于临时查看信息等,方便。
    
    • 多文件编辑
      使用“vi 文件1 文件2 文件3”可以打开多个文件。
    “:files”:列出vi打开的所有文件
    “:n”:进入下一个被vi打开的文件编辑
    “:N”:进入前一个被vi打开的文件编辑
    
    • 多窗口编辑及切换
      已经打开了一个文件在编辑,此时想要打开另一个文件,有多窗口真的很方便。多窗口方式比多文件编辑方式要直观很多,值得推荐6666。
    “:sp filename”:水平分割窗口,并打开filename文件
    “:vsp filename”:沿垂直方向分割窗口,并打开filename文件
    Ctrl + w + j或k:将光标往上或者往下移动到内窗口,进去后就可以进行常规操作了
    

    保存vi偏好设置

    打开文件“vi ~/.vimrc”,通过set来设置,常用的有:
    set nu
    set ruler
    set hlsearch
    set showmode
    syntax on
    ...
    
  • 相关阅读:
    [Android]SharedPreferences
    [Android]XML界面布局常用属性概括
    [Android]XML解析技术
    [Android]Layout标签之-viewStub,requestFocus,merge,include
    [Android]JSON
    [Android]SQLite基本控制台命令简介
    [Android]流文件
    [HTML5]WebSQLDatabase-关系型数据库简介
    [Android]ADB和NavicatLiteSQLDBmanager的数据管理
    [Android]SqliteOpenHelper抽象类实现SQL_DB的管理
  • 原文地址:https://www.cnblogs.com/fefjay/p/8111395.html
Copyright © 2011-2022 走看看