zoukankan      html  css  js  c++  java
  • 文本编辑软件vim

    vim软件是一个文本编辑器,类似windows下的记事本,但要比windows下的词事本强大的多。
    vim是linux/unix上最常用的文本编辑器,它的作用是建立,编辑,显示文本文件 。
    vim没有菜单,只有命令。

    vim的学习方法:练习,再练习,让命令形成自然习惯。

    1. vim的模式

    • 命令模式
    • 插入模式
    • 编辑模式

    1.1 命令模式:

    命令模式下,输入的字符都当命令对待。

    vim
    vim filename
    

    命令行下输入 vimvim filename 这样会打开vim。 vim filename表示用vim软件编辑file文件。
    启动vim之后默认就是命令模式。

    直接输入vim启动,会出现版本等信息,但用 vim filename编辑文件时不会出现此界面。

    如果在其它模式下,想要回到命令模式,按一下ESC键:

    1.2 插入模式

    在命令模式下切换到插入模式,可以用下面的三个命令:

    • i 切换到插入模式,在光标所在字符前插入
    • a 切换到插入模式,在光标所在字符后插入
    • o 切换到插入模式,在光标下面插入一个空行。

    进入插入模式后,输入的字符都被看成普通字符,此时和windows记事本没啥区别了。 上面iao描述了进入插入模式,您可以试一下。

    1.3 编辑模式

    在命令模式下输入 : 之后进入编辑模式。
    编辑模式下可以对vim工具进行设定,比如添加行号,设置自动对齐,设置快捷键等。

    在编辑模式下输入:

    set number
    

    回车之后vim会显示行号,而且自动回到命令模式。

    命令 作用
    :set number 显示行号(编辑模式)
    :set nonumber 取消行号(编辑模式)

    2. 插入

    以下命令(字符)按完之后,直接进入插入模式,但进入的同时会有不同的行为。

    命令 作用
    a 在光标所在字符后插入
    A 在光标所在行尾插入
    i 在光标所在字符前插入
    I 在光标所在行首插入
    o 在光标下面插入新行
    O 在光标上面插入新行

    小写和大写是有区别的。学习vim要强化练习,让这些命令形成习惯,像键盘练习那样,形成条件反射。

    3. 定位

    命令 作用
    h 光标左移(同光标键:left)
    l 光标右移(同光标键:right)
    k 光标上移(同光标键:up)
    j 光标下移(同光标键:down)
    gg 光标移到第一行
    G 光标移到最后一行
    nG 光标移到第n行
    :n 光标移到第n行(编辑模式)
    $ 光标移到行尾
    0 光标移到行首
    ^ 光标移到行首
    ctrl+f 下一页
    ctrl+b 上一页

    0与^的区别是:^移到行首的第一个字符位置(非空白),而0移到真正的行首(包括空白)。

    4. 删除命令

    命令 作用
    x 删除光标所在处字符
    nx 删除光标所在处后n个字符,就是重复n次x命令
    dd 删除光标所在行
    ndd 删除光标所在行开始的n行,就是重复n次dd命令
    dw 删除一个单词
    dG 删除光标所在行到行尾
    dgg 删除光标所在行到行首
    D 删除光标所在处到行尾
    d$ 同上
    :行n, 行m d 删除n-m行(编辑模式)

    5. 选择,复制和剪切命令

    命令 作用
    v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。
    V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
    yy 复制光标所在行
    nyy 复制当前行以下n行
    y$ 复制到行尾
    yw 复制一个单词
    dd 剪切当前行(上面的删除就是剪切行)
    ndd 剪切当前行以下n行
    p(lower) 粘贴到当前行的下行
    P(upper) 粘贴到当前行的上行

    6. 替换和取消命令

    命令 作用
    r 取代光标所在处字符,按r,再输入正确的字符
    R 从光标所在处开始替换,按ESC结束
    u 撤销一步
    ctrl+r 重做

    7.搜索和替换命令

    命令 作用
    /string 搜索指定的字符串,按n,N跳到下一个或上一个string
    :% s/old/new/gi 搜索old,替换成new,g表示全局,i表示忽略大小写(编辑模式)
    :n1,n2 s/old/new/gi 同上,但只限于在n1~n2这些行之间搜索。

    在搜索时可以高亮显示搜索到关键字

    命令 作用
    set hlsearch 高亮
    set nohlsearch 去掉高亮

    替换时:

    • %表示所有行,如果没有%则只对当前行进行替换。
    • g表示全部替换,比如当前行有10个v,要替换成x,没有g的情况下只替换第一个匹配的,有g全替换
    • 与%相对应的:n1,n2 表示指定范围的行,即在n1~n2范围内的行。

    8.保存

    命令 作用
    :w 保存修改
    :w filename 另存为
    :wq 保存并退出,也可以用快捷键ZZ
    :q! 不保存退出
    :wq! 强制保存并退出,只有文件所有者和root可以

    9. 导入文件

    在编辑模式输入:

    :r /etc/os-release
    

    把/etc/os-release文件的内容导入到当前文档中,入到光标所在的位置。

    10. 运行命令

    在编辑模式下输入:

    :!whereis ls
    

    !后面跟上命令。 此例执行了whereis ls命令。 这种方式在不退出vim的状态下执行命令。

    11. 把命令的结果导入到vim中

    在编辑模式下输入:

    :r !ls /
    

    把ls /命令执行的结果,导入到当前vim编辑的文档中。

    12. 定义快捷键

    在编辑模式下输入:

    :map ^P I#<ESC>
    

    这里面定义ctrl+p快捷键,分三部分:

    • map
    • 快捷键
    • 自定义命令

    I就是我们在命令模式下按I的操作,表示光标跳到行首并进入插入模式,之后输入#,之后按ESC键回到命令模式。

    执行这个快捷键时: 相当于在光标所在行,按下I,之后输入#,之后按下ESC回到命令模式。

    注意:^P的输入方法是:ctrl+v, ctrl+p。

    13. 在编辑中替换

    比如:输入mymail回车或空格,自动替换成 myccloves@163.com

    :ab mymail myccloves@163.com
    

    14. 写入配置文件

    我们会发现重启vim,定义的快捷键都没有了,解决的方法是写入配置文件。

    在家目录创建.vimrc文件,把一些常用的配置写到这个文件里,比如:定义的行号,快捷键,替换等。
    当启动vim时会自动运行此文件,相当于在vim中重新输入了一遍这些命令:

    set number
    set hlsearch
    map ^P I#<ESC>
    ab mymail myccloves@163.com
    

    常用的配置:

    " 设置C/C++方式自动对齐 
    set autoindent  
    set cindent  
    set smartindent
    
    " 设置tab宽度 
    set tabstop=4
    
    " 设置自动对齐空格数 
    set shiftwidth=4
    
    " 设置编码方式 
    set encoding=utf-8  
    
    " 设置打开文件的编码格式 
    set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
    
    " 开启语法高亮
    syntax on
    
    
    " 设置取消备份,禁止临时文件生成 
    set nobackup  
    set noswapfile
    
    " 设置搜索高亮(hlsearch) 
    set hlsearch
  • 相关阅读:
    10个迷惑新手的Cocoa,ObjectiveC开发难点和问题
    如何成为Android高手
    利用ModalViewController切换View
    自定义导航栏的返回按钮(xcode)
    iphone开发笔记和技巧总结(原址持续更新)
    axis2出现错误
    NYOJ 214(二分插入)
    NYOJ 17(LIS转为LCS,但是MLE)
    NYOJ 214(LIS二分插入)
    NYOJ 36(增量法解决LCS)
  • 原文地址:https://www.cnblogs.com/myccloves/p/9419599.html
Copyright © 2011-2022 走看看