Windows 下的 Vim 编程

引言

之前习惯了在 Linux 下使用 Vim 进行编程,最大的好处就是能摆脱鼠标进行编程,而在 windows 下 cmd 并没有办法直接安装 Vim ,Windows 下可以安装 gVim ,但要直接在 cmd 窗口中直接像 Linux 下输入 vim 进入编程,还是需要进行一些配置。

 

安装 gVim

直接在 vim 官网 下载最新的 Windows 版本的安装包 gvim81.exe ,直接按照默认设置安装即可(注意记录安装路径)。

 

配置 cmd 中使用 vim

在系统环境变量中的 Path 变量中配置 gVim 的安装路径

或者创建一个 VIM_HOME 变量,变量值为 gVim 安装路径,再将 %VIM_HOME% 添加到 Path 中

由于使用 vim 编辑文件需要管理员身份,因此需要设置 cmd 默认使用系统管理员身份打开,设置步骤如下:

  • 按键盘 win 键,在附件中找到 命令提示符

  • 鼠标右键选中程序中的 命令提示符 ,打开 属性

  • 在快捷方式栏中选择 高级 ,勾选 用管理员身份运行 ,点击确定即可。

配置完成后,直接在 cmd 中输入 vim [文件名] ,即可使用 vim 模式打开文件:

$ vim test.txt

当然也可以在独立于 cmd 的 gVim 窗口中打开文件,直接在 cmd 中输入:

$ gvim test.txt

 

插件管理器 vundle

vundle 是一个开源的最常用的 vim 的插件管理器,其源码地址 VundleVim/Vundle.vim 。假如想要在 Windows 下使用它,安装步骤如下:

  • 安装 Git 和 Curl

    $ git --version
    git version 2.13.0.windows.1
    $ curl --version
    curl 7.63.0 (x86_64-pc-win32) libcurl/7.63.0 OpenSSL/1.1.1a (WinSSL) zlib/1.2.11
     brotli/1.0.7 WinIDN libssh2/1.8.0 nghttp2/1.35.1
    Release-Date: 2018-12-12
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s
     rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz brotli
     TLS-SRP HTTP2 HTTPS-proxy MultiSSL
  • 安装 vundle 到 gVim 的安装目录下:

    $ git clone https://github.com/VundleVim/Vundle.vim.git E:\
    vim\installs\Vim81\vimfiles\bundle\Vundle.vim
    Cloning into 'E:\vim\installs\Vim81\vimfiles\bundle\Vundle.vim'...
    remote: Enumerating objects: 3136, done.
    remote: Total 3136 (delta 0), reused 0 (delta 0), pack-reused 3136
    Receiving objects: 100% (3136/3136), 933.42 KiB | 770.00 KiB/s, done.
    Resolving deltas: 100% (1105/1105), done.
  • _vimrc 中配置 vundle 的信息:

    set nocompatible              "禁用 Vi 兼容模式
    filetype off                  "禁用文件类型侦测
    ​
    set rtp+=E:/vim/installs/Vim81/vimfiles/bundle/Vundle.vim
    call vundle#begin('E:/vim/installs/Vim81/vimfiles/bundle')  " 插件列表开始,可指定插件安装目录
    ​
    " 使用Vundle来管理插件,这个必须要有
    Plugin 'VundleVim/Vundle.vim'
    " 需要的插件可以继续从这里追加
    Bundle 'scrooloose/nerdtree'
    " 所有插件都必须在此行之前添加
    call vundle#end()            " 插件列表结束
    filetype plugin indent on    " 配置结束
  • 打开 vim 或者 gvim 执行 :PluginInstall ,自行完成后,在 vundle#begin 指定的目录下会下载存放添加的插件。可以看到如下打印输出:

    " Installing plugins to E:\vim\installs\Vim81\vimfiles\bundle
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'scrooloose/nerdtree'
    Helptags

     

一些常用的插件:

  • nerdtree 文件目录树浏览插件

    _vimrc 配置其展开和关闭的快捷键

    " 常规模式下输入 F2 调用插件
    nmap <F2> :NERDTreeToggle<CR>
  • neocomplcache 关键字补全、文件路径补全、tag补全等等,各种,非常好用,速度超快

    _vimrc 配置 vim 启动时启动此插件

    let g:neocomplcache_enable_at_startup = 1     "vim 启动时启用插件

    在弹出补全列表后用 <ctrl-p> 或 <ctrl-n> 进行上下选择效果比较好

  • morhetz/gruvbox 比较像 sublime 的主题

    但只在 gVim 模式下生效,因此可以区分 vim 和 gVim 使用不同的主题:

    " -----------------------------------------------------------------------------
    "  < 判断是终端还是 Gvim >
    " -----------------------------------------------------------------------------
    if has("gui_running")
        let g:isGUI = 1
    else
        let g:isGUI = 0
    endif
    ​
    " -----------------------------------------------------------------------------
    "  < 主题配置 >
    " -----------------------------------------------------------------------------
    if g:isGUI
        let g:gruvbox_sign_column = 'dark0'
        let g:gruvbox_vert_split = 'dark0'
        colorscheme gruvbox
    else
        colorscheme desert
    endif

     

插件管理器 Vim-plug

除了使用上面提到的 Vundle 安装管理插件外,还可以使用 Vim-plug ,这是一个自由、开源、速度非常快的、极简的 vim 插件管理器。

 

配置语法高亮

gVim 安装目录下的 _vimrc 是其配置文件,这里主要配置几项:

  • 设置文件的编码格式为 utf-8

    set encoding=utf-8
    set termencoding=utf-8
    set fileencoding=utf-8
    set fileencodings=ucs-bom,utf-8,chinese,cp936

    假如是在 cmd 中使用 gvim 去打开文件,则还需要配置如下已解决乱码问题:

    "vim的菜单乱码解决
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
     
    "vim提示信息乱码的解决
    language messages zh_CN.utf-8
  • 默认打开时窗口最大化

    autocmd GUIEnter * simalt ~x
  • 设置 tab 默认 4 个空格

    set tabstop=4
  • 设置显示行号

    set nu!
  • 设置语法高亮

    colorscheme desert  "设置主题
    syntax enable       "打开语法高亮
    syntax on           "打开语法高亮

     

支持全屏

在 cmd 中使用 vim 假如希望全屏就依赖于 dos 窗口自身的全屏,而默认是不支持的,有个办法可以做到,就是在 dos 中输入 wmic 点击最大化,然后再输入 quit 退出 wmic 模式即可。

$ wmic
wimc:root\cli>quit

而假如是使用独立的 gVim ,想要支持全屏,则需要额外的一个外部动态库,库源码地址: 。可自行编译,也可直接下载 release 版本 vim_fullscreen.dll ,将该文件放到 gVim 安装目录下的 vim.exe 文件所在的目录,然后在 _vimrc 中添加如下配置:

" 按 F11 切换全屏
noremap <f11> <esc>:call libcallnr('gvim_fullscreen.dll', 'ToggleFullscreen', 0)<cr>
" 按 F12 切换窗口透明度
noremap <f12> <esc>:call libcallnr('gvim_fullscreen.dll', 'ToggleTransparency', "247,180")<cr>
" 隐藏菜单、工具栏、滚动条
set guioptions-=TrLm

 

Linux 和 Windows 通用配置

其实在配置文件中是可以通过逻辑代码判断平台做条件处理的,这样就可以实现一个配置文件两个个平台下共用了,判断逻辑如下:

" =============================================================================
"        << 判断操作系统是 Windows 还是 Linux 和判断是终端还是 Gvim >>
" =============================================================================
 
" -----------------------------------------------------------------------------
"  < 判断操作系统是否是 Windows 还是 Linux >
" -----------------------------------------------------------------------------
let g:iswindows = 0
let g:islinux = 0
if(has("win32") || has("win64") || has("win95") || has("win16"))
    let g:iswindows = 1
else
    let g:islinux = 1
endif
 
" -----------------------------------------------------------------------------
"  < 判断是终端还是 Gvim >
" -----------------------------------------------------------------------------
if has("gui_running")
    let g:isGUI = 1
else
    let g:isGUI = 0
endif

 

配置结果

 

参考


微信公众号「何乐不为呢」,一个码农的技术笔记和唠叨。

 

相关推荐
用于windowsvim编辑器。 给喜欢vim人使用。详细如: 好吧,详细点,这里写出一些基本命令: 【什么是vi】 vi就是linux命令行最著名编辑器之一,(编辑器就是类似windows记事本功能,不过vi功能比记事本强大无限倍!^_^),现在实际使用都是vim,它是vi改进版本,所以现在vi基本上就是vim了。 【vi能做什么】 第一个功能不用多说,vi可以编辑文本文件。至于其他功能,多得无法列举,我只说我所知一些典型功能应用: (1)编辑文本文件 (2)方便地阅读程序源代码 (3)当文件目录浏览器来用 (4)提供编程、调试环境 (5)利用vi执行一些脚本文件(vi有自己脚本文件语法) (x)等等等等...... 【vi操作模式】   vi具有两种基本模式,为输入模式(或插入模式、编辑模式)和指令模式(或命令模式)。输入模式输入字符,文本就会显示在屏幕上;而指令模式输入字符就解释为一个输入命令并执行,而不会显示相应字符。理解指令模式最简单方式就是想象平时剪切、复制以及粘贴数据时所发生情况。 使用[Esc]键可以停止当前操作(插入或者命令)重新回到指令模式,准备接受新指令。如果本来就在指令模式面,将会响铃一。 【最基本使用】 这里提供了使用vi得最基本操作,能够实现大多数编辑目。如果你肯花几分钟把“最基本使用”内容都实践一,那么你至少可以独立地在vim中朝你想要得方向“前进”了。如果你不想学习,那么就把它当作一个“字典”吧。 *用vi打开一个文件: 输入“vi filename”. 这里,filename就是你要打开文件名字,默认打开文件后vi处于指令模式。 *进入编辑模式编辑打开文件: 输入“i”. 或输入“a”. 进入编辑模式后,你可以直接敲入想要输入字符到文件,两者区别是i在当前字符前面开始插入,a在当前字符后面开始插入。 *退出编辑模式: 输入“[Esc]”. 这样,将返回指令模式,准备接收你要传达给vi指令并执行,如果之前已经在指令模式,那么系统将响铃提醒一。 **以命令都是在命令模式进行: *撤销修改: 输入“u”. 这里,相比以前vi来说,vim支持多步撤销。 *恢复修改: 输入“[Ctrl]r”. 这里,和撤销命令相反,是撤销撤销,也可多步。 *复制行到剪切板: 输入“yy”. *复制选定内容到剪切板: (1)输入“v”。 (2)按方向键将高亮选择内容。 (3)输入“y”。 这里,开始输入v使vi临时进入了一个"选择模式",输入方向键可以选择,输入y将选择内容复制剪切板。 *删除行: 输入“dd”. 注意,vi删除等价于剪切,删除内容会保存到剪切板中。 *删除选定内容: (1)输入“v”。 (2)按方向键将高亮选择内容。 (3)输入“d”。 这里,开始输入v使vi临时进入了一个“选择模式”,输入方向键可以选择,输入d将选择内容删除。 *粘贴: 输入“p”. 这样会将剪切板内容粘贴到光标位置或者光标一行。 *查找字符并定位到第一个匹配处: 输入“/character”. 这里character是待查找字符,只要先输入/,再输入待查字符,最后回车即可定位到第一个匹配字符处。 *定位到匹配查找一个字符处: 输入“n”. *定位到匹配查找上一个字符处: 输入“N”. *保存文件: 输入“:w”. 注意w前面':',输入':'之后,vim会将':'之后输入解释为待执行指令。 *退出: 输入“:q”. 这里,如果文件没有保存,将提示无法退出,除非你强制退出,不保存文件,或者保存退出。 *强制退出: 输入“:q!”. *保存退出: 输入“:wq”. 或输入“ZZ”. *察看帮助 输入":help". ** 另外还有一个简易教程: 输入命令:vimtutor.
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页