文本编辑软件—VIM
刚开始使用 VIM 的时候的确感觉到有些别扭,中间也有将 VIM 放在一边不去用的经历。到现在不再感觉 VIM 有什么神秘,但却对之更加热爱。因为确实感觉到了 VIM 使用起来真的特别地好用。所以第一篇软件介绍就先介绍这个文本工具 VIM。
网上对 VIM 的介绍已经很多了,但真的是鱼龙混杂让人难分真伪。亦或者说的晦涩难懂,可能英文资料内容会好一点。但对读者的阅读要求门槛又有点太高了,甚至很多英文资料都找不到。所以这里对 VIM 的介绍会简单的开始,如何获得 VIM 以及如何安装。
这里简单解释一下GVIM(Graphical User Interface visual IMproved),翻译为中文就是“带图形界面的增强版可视化编辑器”。回到正题,软件下载地址(以windows系统为例):https://www.vim.org/download.php 获得 Vim 安装包。可以选择安装程序,或者便携版本。这里特别提醒将软件安装/解压至*英文*目录下,如果解压在一个中文目录下可能会出现一些兼容问题。安装后GVIM文件夹里有入门教程 vimtutor.bat 自行学习。
vim 的帮助文档默认为英文。中文帮助文档:https://vimcdoc.sourceforge.net/ 将下载的解压至 ~\vim\vim92\pack\dist\start\ 目录下即可使用中文帮助文档。
-
Vimwiki 插件
-
Vimwiki 是一个基于 Vim 编辑器的个人 Wiki 系统插件,允许用户以纯文的格式创建、编辑和管理 Viki 界面。
插件下载地址:https://github.com/vimwiki/vimwiki/
附:vimwiki 中文帮助 -
Calendar.vim 日历插件,可以可以和 Vimwiki 插件配合使用亦可单独使用。
插件下载地址: https://www.vim.org/scripts/script.php?script_id=52
附:calendar 中文帮助
-
Vimwiki 是一个基于 Vim 编辑器的个人 Wiki 系统插件,允许用户以纯文的格式创建、编辑和管理 Viki 界面。
-
插件安装简述
VIM 插件的安装在插件的说明文档一般都会有说明,请仔细阅读插件说明文档。这里提供一种方法是将每个插件解压到一个单独的文件夹里,这样管理插件会变得轻松。比如将插件解压后放到文件夹 ~\vim\vim92\pack\dist\start\ 里,每一个插件单独放到一个子文件夹下。若无法查看插件的帮助文档执行命令 :helptags . 命令后即可在帮助文档里查看插件的帮助文档。 - 其他使用技巧
- 配置文件vimrc
View Code1 set nocompatible " 禁用旧版本 vi 的一些特性 2 filetype plugin on " 打开文件类型检查 3 syntax on " 打开语法高亮 4 set wildoptions=pum " 弹出菜单 5 set path+=** " 递归查找子文件 6 set fileencodings=ucs-bom,utf-8,gb18030,big5,euc-jp,euc-kr,latin1 7 au BufEnter * cd %:p:h " 将工作目录修改为文件所在目录 8 " 自定义函数 9 function! Remove() " 不改变文件顺序删除重复靠后的行 10 let i=1|g/^/s//\=i.'|'/|let i+=1 11 sort! /^\d\{-}|/ " 将行号后面的内容进行倒序排列 12 g/^\d\{-}|\(.*\)$\n\d\{-}|\1$/d " 删除与下一行内容相同的行 13 sort n 14 %s/\d\{-}|// 15 endfunction 16 nnoremap <F7> :silent execute Remove()<CR> 17 function! RemoveBySecond() " 以第二列为重复依据,删除靠后的行 18 let i=1|g/^/s//\=i.'|'/|let i+=1 19 sort! /^\d\{-}|\S*\s/ " 将行号后面的内容进行倒序排列 20 g/^\d\{-}|\S*\s\(.*\)$\n\d\{-}|\S*\s\1$/d 21 sort n 22 %s/\d\{-}|// 23 endfunction 24 " 插件配置 25 " ================================ 26 " << calendar-vim >> 27 " ================================ 28 let g:calendar_monday = 1 " 以星期一为开始 29 let g:calendar_mark = 'right' " 当前日期标志在日期右边 30 let g:calendar_mruler = '一月,二月,三月,四月,五月,六月,七月, 31 \八月,九月,十月,冬月,腊月' 32 let g:calendar_wruler = '日 一 二 三 四 五 六' 33 let g:calendar_navi_label = '上月,本月,下月' 34 let g:calendar_weeknm = 5 35 " ================================ 36 " 使用 vimwiki 37 " 提示:重映射了 <C-Space> 解决与系统输入法热键的冲突 38 " ================================ 39 nmap <C-S-Space> <Plug>VimwikiToggleListItem 40 let g:vimwiki_menu='个人维基' 41 let g:vimwiki_toc_header = '目录' 42 let g:vimwiki_links_header = '超链接目录' 43 let g:vimwiki_tags_header = '标签目录' 44 let g:vimwiki_CJK_length = 1 45 let g:vimwiki_hl_cb_checked = 2 46 let g:vimwiki_hl_headers = 1 47 let g:vimwiki_text_ignore_newline = 0 48 let g:vimwiki_list_ignore_newline = 0 49 let g:vimwiki_diary_months = { 50 \ 1: '一月', 2: '二月', 3: '三月', 51 \ 4: '四月', 5: '五月', 6: '六月', 52 \ 7: '七月', 8: '八月', 9: '九月', 53 \ 10: '十月', 11: '冬月', 12: '腊月' 54 \ } 55 let wiki_1 = {} 56 let wiki_1.ext = '.txt' 57 let wiki_1.name = '互联记事本' 58 let wiki_1.auto_tags = 1 59 let wiki_1.diary_header = '日记目录' 60 let wiki_1.auto_diary_index = 1 61 let wiki_1.path = substitute(fnamemodify($VIM, ':h'), '[/\\]\+$', '', '') . '/pangea/vimwiki' 62 let wiki_1.path_html = substitute(fnamemodify($VIM, ':h'), '[/\\]\+$', '', '') . '/pangea/vimwiki_html' 63 let g:vimwiki_list = [wiki_1] 64 " ================================ 65 " 状态栏提示 66 " ================================ 67 set laststatus=2 " lightline插件,底部状态栏 68 set noshowmode 69 augroup LightlineColorscheme " 让lightline配色方案与VIM配色方案联动 70 autocmd! 71 autocmd ColorScheme * call s:lightline_update() 72 augroup END 73 function! s:lightline_update() 74 if !exists('g:loaded_lightline') 75 return 76 endif 77 try 78 let current_main_theme = get(g:, 'colors_name', '') 79 if current_main_theme =~# 'evening' 80 let g:lightline = {'colorscheme': 'Tomorrow_Night'} 81 elseif current_main_theme =~# 'morning' 82 let g:lightline = {'colorscheme': 'Tomorrow'} 83 endif 84 call lightline#init() 85 call lightline#colorscheme() 86 call lightline#update() 87 catch 88 endtry 89 endfunction 90 " ================================ 91 " 小小输入法外挂模式下使用 92 " ================================ 93 set imdisable " 关闭输入法管理,手动管理输入法状态 94 let g:yong_vim = substitute(fnamemodify($VIM, ':h'), '[/\\]\+$', '', '') . '/yong/w64/yong-vim.exe' 95 let g:input_toggle = 0 " 记录输入法中/英文状态 96 let g:input_toggle_timer = 0 97 98 function! Yong_set_input_toggle(channel, output) 99 let g:input_toggle = a:output 100 endfunction 101 102 function! Yong2en_timer(timer) 103 if g:input_toggle_timer == 0 104 return 105 endif 106 let g:input_toggle_timer = 0 " 记录中/英状态,并切换至英文输入模式 107 call job_start(g:yong_vim . " 1 -w",{'out_cb': 'Yong_set_input_toggle'}) 108 endfunction 109 110 function! Yong2en() 111 let g:input_toggle_timer = 1 112 call timer_start(200,'Yong2en_timer') 113 endfunction 114 115 function! Yong2zh() 116 let g:input_toggle_timer = 0 117 if g:input_toggle != 0 " 如果之前输入法为中文状态则将其切换为中文状态 118 call job_start(g:yong_vim) 119 let g:input_toggle = 0 120 endif 121 endfunction 122 123 autocmd GUIEnter * call Yong2en() 124 autocmd InsertLeave * call Yong2en() 125 autocmd InsertEnter * call Yong2zh()
- 配置文件gvimrc
View Code1 set guifont=Consolas:h19:cANSI:qDRAFT 2 set guifontwide=新宋体:h19:cANSI:qDRAFT 3 colorscheme evening " 配色方案 4 set guioptions-=m " 不显示菜单 5 set guioptions-=T " 不显示工具栏 6 set guioptions-=L " 不显示左侧滚动条 7 set guioptions-=r " 不显示右侧滚动条 8 set relativenumber " 使用相对行号 9 set ignorecase smartcase " 开启聪明的搜索方案 10 set ambiwidth=double " 不明宽度字符占两倍字宽 11 set formatoptions+=mM " 处理中文折行与拼接问题 12 "set textwidth=78 " 设置文本的最大宽度 13 set breakindent " 折行后延续行保持缩进 14 au GUIEnter * simalt ~x " 最大化窗口 15 set lines=35 " 设置gvim窗口行数 16 set columns=97 " 设置gvim窗口列数 17 winpos 0 0 " 设置gvim窗口位置 18 " ================================ 19 " 插件配置 20 " ================================ 21 highlight VimwikiHeader1 guifg=#FF0000 gui=bold 22 highlight VimwikiHeader2 guifg=#FFC000 gui=bold 23 highlight VimwikiHeader3 guifg=#92D050 gui=bold 24 highlight VimwikiHeader4 guifg=#00B0F0 gui=bold 25 highlight VimwikiHeader5 guifg=#CC99FF gui=bold 26 highlight VimwikiHeader6 guifg=#FFFFFF gui=bold

浙公网安备 33010602011771号