zoukankan      html  css  js  c++  java
  • 【Linux基础】vim编辑器设置(缩进、括号自动匹配)

     原文链接

    参考链接

    内容:

    1、设置自动缩进(tab键为4个字符)

    2、设置括号自动缩进(比如输入"(",会自动输入(),且光标在括号中间)

    详解:

    1、设置自动缩进

      办法:

        我的vim这么难用?不能语法高亮,没有折行,不能打开多个窗口多个buffer,不能……,要实现这些功能,需要配置vimrc文件

      1.1、vimrc文件目录在哪?

        输入vim回车,进入vim命令模式

        

      1.2、命令模式输入":versin"

        

      1.3、关于vimrc的显示如下:

          

      1.4、对于vim初学者,如果不知道$HOME或者$VIM具体是哪个目录,可以在vim中用下面的命令查看

    :echo $VIM
    :echo $HOME 

        

      1.5、切换到管理员权限,修改系统vimrc文件(也就是图片中的“$VIM”)

         

      1.6、配置缩进:

        

    解释:

    设置制表符宽度
      :set tabstop=4
      :set softtabstop=4
    设置缩进的空格数
      :set shiftwidth=4
    每行的缩进值与上一行相等
      :set autoindent

    vimrc文件怎么用?

      举个例子:【我要实现这样的效果——在我用vim打开文件时,默认地给我显示行数】

            vim在默认的情况下,不会显示行数,需要在命令模式下输入【:set number】。这个命令只对当前窗口起作用。

    你打开其他的文档,如果还要显示行数,得再敲set的命令。

            有了配置文件就不用这么麻烦了。打开你的【_vimrc】文件,在文件的最后的一行输入【set number】,保存。

            这样,你以后打开的所有文件就都会有行号了。

     

      这只是很小的功能,举个例子罢了。

            它还可以定义自己的命令,如删除空行等,就不用记住那个难记的正则表达式,只要在配置文件里写一遍,再给它取个名字(如:xyz),以后输入【:xyz】就能达到删除空行的效果。(此篇不再赘述)

            另,vim还自带了一个vimrc的示例文件——【vimrc_example.vim】。我的这个文件目录是这样的:【$VIMvim73】

     2、设置括号自动缩进

      vi编辑器中的括号不能自动缩进,使用imap将可以实现,大括号缩进设置为

    imap {<CR> {<CR>}<ESC>O

      意思是:在输入时将大括号接换行符映射成大括号接回车接大括号接ESC接大写的O  

      效果(输入" { ",然后enter回车):

      

      同理,中括号以及小括号缩进设置

    imap [ []<ESC>i  //输入左中括号的时候自动补齐右中括号,并在括号中间输入i
    imap ( ()<ESC>i  //输入左小括号的时候自动补齐右小括号,并在括号中间输入i

      效果(只输入一个 " [ " 时):

      

      另外的缩进设置:输入一个左括号,相当于输入完整的括号再将光标向左移动一个字符

    imap [ []<LEFT> //输入左中括号的时候自动补齐右中括号
    imap ( ()<LEFT> //输入左小括号的时候自动补齐右小括号

      效果(只输入一个 " [ " 时):输入一个左括号,相当于输入完整的括号再将光标向左移动一个字符

      

     以上只是简单举例。

       再就是imap是什麽意思,imap的意思是insert模式下的映射操作,上述设置的映射规则只在输入模式下有作用,在其他模式中没有设置这种映射规则就不会有这种输入时的替换,map有好几种映射模式,想设置某一种模式下映射规则,可以使用该模式下的映射命令,比如命令模式cmap,普通模式nmap

    关于map的模式可以参考这篇博客http://haoxiang.org/2011/09/vim-modes-and-mappin/

  • 相关阅读:
    Java乔晓松oracle的多表查询
    定义一个地址固定的变量
    J2ME的表单元素及其事件
    J2me的异常处理和多线程
    [置顶] eclipse远程部署,静态文件实时同步插件
    newlisp debugger
    启用isqlplus
    ORA27101: shared memory realm does not exist
    windows下安装node.js及less
    em启动/关闭报错解决
  • 原文地址:https://www.cnblogs.com/wmjlh/p/7405120.html
Copyright © 2011-2022 走看看