zoukankan      html  css  js  c++  java
  • Linux中设置vim自动在运算符号两边加上空格

    vim中设置自动在=+-之类的运算符号左右两边加上空格。原版的vim不带这个功能,写出的代码例如z=x+y,不美观,很多编译器(如VS)能够自动在符号两边加上空格,如z = x + y,看起来比较美观。

    只要在.vimrc里面加入如下代码:

    "设置= + - * 前后自动空格
    "设置,后面自动添加空格
    if exists("g:equ")
    :inoremap = <c-r>=EqualSign('=')<CR>
    :inoremap + <c-r>=EqualSign('+')<CR>
    :inoremap - <c-r>=EqualSign('-')<CR>
    :inoremap * <c-r>=EqualSign('*')<CR>
    :inoremap / <c-r>=EqualSign('/')<CR>
    :inoremap > <c-r>=EqualSign('>')<CR>
    :inoremap < <c-r>=EqualSign('<')<CR>
    :inoremap , ,<space>
    endif
    
    
    function! EqualSign(char)
    if a:char  =~ '='  && getline('.') =~ ".*("
    return a:char
    endif 
    let ex1 = getline('.')[col('.') - 3]
    let ex2 = getline('.')[col('.') - 2]
    
    
    if ex1 =~ "[-=+><>/*]"
    if ex2 !~ "s"
    return "<ESC>i".a:char."<SPACE>"
    else
    return "<ESC>xa".a:char."<SPACE>"
    endif 
    else
    if ex2 !~ "s"
    return "<SPACE>".a:char."<SPACE><ESC>a"
    else
    return a:char."<SPACE><ESC>a"
    endif 
    endif
    endif

    就可以了。另外还可以加入如下代码,增加vim的便利性:

    "预防手误的杀招
    nnoremap : :
    cnoremap Q! q!
    command Wq wq
    command Q q
    command WQ wq
    
    set nu 
    "代码显示行号
    syntax on 
    "关键词高亮显示
    set cindent 
    "c语法自动缩进
    set autoindent 
    "新行自动缩进
    set shiftwidth=4 
    "缩进宽度4
    set tabstop=4 
    "tab键宽度4
    set softtabstop=4 
    "制表符宽度4
  • 相关阅读:
    spring3创建RESTFul Web Service
    安装Maven
    如何使用 JSP JSTL 显示/制作树(tree) 菜单
    Eclipse EE导入maven工程
    安装PL/SQL Developer,链接本地64位Oracle
    Maven项目消除奇怪的红叉
    如何禁用Eclipse的Validating
    帮助文档总览
    MySQL下载安装、配置与使用(win7x64)
    C#知识点总结:Monitor和Lock以及区别
  • 原文地址:https://www.cnblogs.com/alwayswangzi/p/6489845.html
Copyright © 2011-2022 走看看