zoukankan      html  css  js  c++  java
  • 辛星深入分析vim的自己主动补全功能以及vim的映射

         曾经对于vim的自己主动补全功能,都是须要的时候从网上下载点配置项,然后复制到自己的vimrc上去,自己也不知道是什么意思。结果发现搜索到的非常多自己主动补全的方式都非常另类,有的喜欢在补全大括号的时候自己主动换行,还有的喜欢在补全大括号的时候自己主动缩进一下,那么,我们花几分钟时间了解一下,自己写出来这些配置,何乐而不为呢?

    ********************************按键映射******************************

    1.首先分清一个概念,那就是nnoremap和inoremap,第一个是在普通模式下生效的映射。第二个是在插入模式下生效的映射。咱们一般都须要在插入模式下使用的,因此咱们通常使用inoremap。那么提到了映射,什么是映射呢?

    2.所谓映射,就是当我们按下某个键的时候。它会运行还有一部分内容,比方说咱们使用map T:q!,那么当我们在命令模式下按T而且回车。就会退出vim。除了map之外。还有nmap表示在normal模式下生效,imap在insert模式下生效。vmap在visual模式下生效。map在全部模式下生效。

    3.那么设置一个映射使用:map <要映射的键> <被映射的按键序列>,假设我们要解除映射,使用unmap命令,清除全部映射使用mapclear命令。

    4.咱们通常把这些映射写入配置文件vimrc中去,这样一次写入,永久生效。

    **************************键位说明**********************************

    1.不论什么能够直接显示的字符都能够直接输入。可是有两个例外,即反斜线和<。由于我们用反斜线表示转义,而<有特殊作用。

    2.反斜线用两个反斜线表示,或者使用<Bslash>

    3.而<须要用<或者<lt>来表示。

    4.<key>的意思是特殊键,咱们介绍一些经常使用的特殊键:

    <Esc>  表示Escape键,

    <C-G>表示Ctrl-G键

    <Up>表示光标上移

    <C-LeftMOuse>表示Ctrl而且鼠标左键点击

    <Space>表示空格

    <Tab>表示Table键

    <CR>就是回车键

    **********************開始写我们自己的自己主动补全***********************

    1.首先给出我的自己主动补全的格式把,首先值得说明的是,这段代码是写在_vimrc里面的,以下为大家细致分析一下:

    "自己主动补全
    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {<CR><CR>}<ESC>0ki<Tab>
    :inoremap } <c-r>=ClosePair('}')<CR>
    function ClosePair(char) 
    if getline('.')[col('.') - 1] == a:char
    return "<Right>"
    else 
    return a:char 
    endif 
    endf
    2.这里的:inoremap表示是在插入模式下的映射。首先第二行的( 即先写(),然后使用esc回到命令模式下,然后运行i来进入到插入模式下。

    3.而当我输入{ 的时候,看它的命令。首先输入一个{,然后是<CR>表示回车换行,然后又是一个换行。然后输入},然后使用esc回到命令模式下。然后我们利用0命令回到行首。然后咱们使用k命令把鼠标移动到上一行,然后运行i命令进入到插入模式,然后咱们使用<Tab>表示插入一个制表符。

    4.当然我仅仅定义了小括号和大括号的自己主动补全,对于中括号我并没有使用自己主动补全,大家能够自行去改动。

    5.vim在这点上使用还是蛮舒服的。毕竟感觉非常自由。

    6.传播编程知识,振兴中华软件。辛星,期待您的关注。

  • 相关阅读:
    [原]终于做了一个登陆页
    JDK 1.7环境变量的配置
    值类型和引用类型讲解,本人在大学时候的笔记,写给新手
    CDays2 习题一 (改进函数)及相关内容解析。Python 基础教程
    Winedt 7.0 Build: 20120321 永久试用方法 Winedt 7.0 破解
    Arduino 笔记。开篇
    What we find changes who we become.
    Python 中的POST/GET包构建以及随机字符串的生成。Python 初级应用
    CDays–2 完成核心功能 CMD模块 Python基础教程 cmd cli
    Python HDB3 AMI 编码与解码
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5271673.html
Copyright © 2011-2022 走看看