zoukankan      html  css  js  c++  java
  • VI设置及用法

    一、VI设置

    通过/etc/vim/vimrc设置vi的基本操作格式。 全局属性
    通过末行模式输入可临时设置。
    syntax on ;高亮显示
    set tabstop=4
    setsofttabstop=4 ;设置(软)制表符宽度为4
    set shiftwidth=4 ;设置缩进的空格数为4
    set autoindent ;设置自动缩进
    set nu ;左行显示文本行号
    set nonu        ;去除行号

    set ic ;忽略大小写 ignore case
    set cursorline ;show line
    --------------------------------------------------------------------------------------
    let &termencoding=&encoding
    set fileencodings=utf-8,gbk ;中文乱码问题

    自定义快捷键
    :map <F10> <Esc>:tabnew<CR>
    其中:<Esc>代表Escape键;<CR>代表Enter键;而功能键则用<F10>表示。首先进入命令行模式,然后执行新建标签页的:tabnew命令,最后返回常规模式。
    同理:对于组合键,可以用<C-Esc>代表Ctrl-Esc;使用<S-F1>表示Shift-F1。对于Mac用户,可以使用<D>代表Command键。
    注意:Alt键可以使用<M-key>或<A-key>来表示。
    关于键盘符号的详细说明,请使用:h key-notation命令查看帮助信息
    map <F5> <ESC>:tp<CR> //tags 查找同一标签的上一处
    map <F6> <ESC>:tn<CR>      //tags 查找同一标签的下一处

    自定义状态栏:
    set laststatus=2
    set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [ASCII=\%03.3b] [HEX=\%02.2B] [POS=%04l,%04v][%p%%] [LEN=%L]
    -----------------------------------------------------------------------------------------------------
    :ab hw hello world 用一个缩写字符串代替一个长的字符串,此处用 hw 代替 hello world
    -----------------------------------------------------------------------------------------------------

    二、vi用法

    1.移动光标
    h 左移 l 右移 j 上移 k 下移动
    0 光标移动到该行开头
    $ 光标移动到该行末尾
    G 光标移动到最后一行的开头
    ctrl + b 向前卷一页
    ctrl + f 向后卷一页

    n+ 光标上移n行,
    n- 光标下移n行

    $:移动到行尾 3$:移动到3行后的行尾
    ^:移动到行首,0也是
    +:移到下一行的行首
    -: 移到上一行的行首
    2.复制文本
    yy 将光标 整行复制
    yw 复制光标所处的整个单词
    nyw 复制光标所处及后面n个单词
    nyy 复制光标所处行及后面n行
    p 粘帖
    3. 删除文本
    dd 连按两次d,可将光标所在的行删除。若要连续删除,可以按住d不放。
    ndd 连续删除n行
    D 将光标所在行后所有的单词删除
    4.撤销操作
    u撤销上一步操作
    ctrl+r 恢复上次撤销的动作。
    5.找出行数及其他按键
    ctrl+g 在最后一行显示光标所在位置的行数及文章的总行数
    nGG 将光标移动至n行首
    ZZ 连续两次输入Z ,表示保存文件并退出vim。
    6.最后行操作模式的主要命令
    e 在vim编辑中,可使用e创建新文件
    w! 如果要写只读文件,可以使用W!强制写入文件。
    q! 强制退出
    set nu set可以设置vim的某些特性,这里是设置每行的开头提示行数,要取消设置set none
    7.搜索
    /string 向后搜索字符串
    ?string 向前搜索字符串 n向后 N向前
    # 到与当前单词相同的上一个单词上, * 到与当前单词相同的下一个单词上
    8. gg到文件开头,G到文件结尾行

    9. manpage

    shift+k显示光标所在函数的manpage。

    10. vim 中可用 :s 命令来替换字符串,具体如下:

    [range]s/from/to/[flags]

    1)[range]
    :s/str1/str2/ 替换当前行第一个 str1 为 str2
    :s/str1/str2/g 替换当前行中所有 str1 为 str2
    :%s/str1/str2/g 替换所有行中的str1 为 str2
    :ms/str1/str2/ 替换第m行的第一个 str1 为 str2
    :m,ns/str1/str2/g 替换第 m 行开始到第 n 行中所有的 str1 为 str2
    (注:m和n 为数字,若m为 .,表示为当前行开始;若n为$,则表示到最后一行结束)

    2)[flags]
    无 : 只对指定范围内的第一个匹配项进行替换。
    g : 对指定范围内的所有匹配项进行替换。
    c : 在替换前请求用户确认。
    e : 忽略执行过程中的错误。
    注意:上面的所有flags都可以组合起来使用,比如 gc 表示对指定范围内的所有匹配项进行替换,并且在每一次替换之前都会请用户确认。

    3) 分隔符
    如果使用 # 作为分隔符,则中间出现的 / 不会作为分隔符,比如:
    :s#str1/#str2/# 替换当前行第一个 str1/ 为 str2/
    :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

    -----------------------------------------------------------------------------------------------------------------------------------

    三、vim插件

    1. man.vim

    在浏览代码中,碰到系统函数调用,可能对于它们的参数类型、参数个数、返回值不确定,这时man.vim就被派上用场了。

    vi ~/.vimrc
    :source $VIMRUNTIME/ftplugin/man.vim

    man.vim插件自vim包自带的,存放在/usr/share/vim/vim72/syntax/man.vim和/usr/share/vim/vim72/ftplugin/man.vim,当然你也可以将其拷贝到~/.vim/ftplugin下统一管理,source的时候更改相应的路径即可。

    在vim命令模式下:Man 系统调用(如:Man strcpy)

    四、vim去除^M

    linux下 ^M的输入方法是ctrl+v然后再ctrl+m

    1. vim下显示^M

    :e ++ff=unix %

    2. vim下删除^M

    :%s/^M$//g

    3. 在linux查找^M

    find ./ | xargs grep '^M' -l -s

    4.在linux下删除^M

    find ./ | xargs grep '^M' -l -s | xargs dos2unix

    五、ctags应用

     sudo apt-get install ctags

    ctags -R 

    vim -t alloc_chrdev_region        //就可以找到alloc_chrdev_region这个符号信息了。

    进入定义出用ctrl + ]

    返回原来的地方:ctrl + t

    编辑/etc/vim/vimrc增加如下两行,可用F5、F6查找
    map <F5> <ESC>:tp<CR>               //tags 查找同一标签的上一处
    map <F6> <ESC>:tn<CR>      //tags 查找同一标签的下一处 

    六、swap文件

    当你强行关闭vi时,比如电源突然断掉或者你使用了Ctrl+ZZ,vi自动生成一个.swp文件,下次你再编辑时,就会出现一些提示。

    你可以使用vi -r {your file name}来恢复文件,然后用rm删除swp文件(rm .{your file name}.swp),不然每一次编辑时总是有这个提示。

    参考:

    1. vim操作汇总

  • 相关阅读:
    Selenium WebDriver 中鼠标事件(全)
    日常知识积累加不定期更新(一)
    动作手游实时PVP技术揭密(服务器篇)
    Java RMI之HelloWorld篇
    java中注解的使用与实例 (二)
    RPC原理及RPC实例分析
    动作手游实时PVP帧同步方案(客户端)
    java中注解的使用与实例(一)
    动作手游实时PVP技术揭密(服务器篇)
    AS3.0 几何结构 Point对象和Rectangle对象
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/4690642.html
Copyright © 2011-2022 走看看