热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Neovim算法竞赛配置(windows版本)

TableofContentsNeovim算法竞赛配置(windows版本)安装neovim配置neovimneovim的使用:详细的代

Table of Contents


  1. Neovim 算法竞赛配置(windows版本)
    1. 安装neovim
    2. 配置neovim
    3. neovim的使用:
    4. 详细的代码配置如下:


Neovim 算法竞赛配置(windows版本)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


安装neovim


  • neovim下载网址
  • 将…\neovim\bin这个目录添加至环境变量


配置neovim


  • 在C:\Users\用户名\AppData\Local\nvim\ 下创建autoload文件夹和init.vim文件,init.vim即为vim的配置文件
  • plug.vim下载,将这个文件放到autoload文件夹中。(vim-plug是个插件管理器,十分好用)
  • 需要git环境,请自行配置
  • 在neovim中运行:PlugInstall,即可安装
  • 在neovim中:checkhealth 这时依据显示去解决所需问题
  • 详细配置会在文末给出


neovim的使用:


  • 1、基本操作的快捷键:

    说明快捷键
    离开Q
    保存S
    打开配置文件rc
    粘贴P
    复制Y
    取消搜索高亮CR
    跳到行尾9
    跳到行首0
    向上移动5行K
    向下移动5行J
    查找(下一个)=
    查找(上一个)-
    向右分屏sl
    向左分屏sh
    向上分屏sk
    向下分屏sj
    窗口大小变化(5个单位)方向箭头键
    离开单个窗口qf
    多个屏幕窗口间移动方向箭头键
    新建标签页窗口tu
    下一个标签页窗口tn
    上一个标签页窗口tp
    全选
  • 2、功能操作快捷键:

    说明快捷键
    回到初始启动页面
    翻译单词显示在命令行t
    翻译单词显示在小方框w
    格式化代码f
    运行代码r
    打开目录tt
    打开当前文件目录ff
    触发自定义代码补全
    自定义代码补全跳转上一个序号处
    自定义代码补全跳转下一个序号处
  • 3、coc是一个十分好用的vim插件,其具体用法在我的另一篇博客上。


详细的代码配置如下:


  • init.vim

    " __ ____ __ _ ___ _____ __ __ ____ ____"| \/ \ \ / / | \ | \ \ / /_ _| \/ | _ \ / ___|"| |\/| |\ V / | \| |\ \ / / | || |\/| | |_) | |"| | | | | | | |\ | \ V / | || | | | _ <| |___"|_| |_| |_| |_| \_| \_/ |___|_| |_|_| \_\\____|" Author: theRunCom" ===" === Basic" ===set number " 显示行号" 使用:set number?可以显示当前值set ruler " 显示光标位置set showcmd " 右下角显示命令set nocompatible " 去掉有关vi一致性模式,避免操作习惯上的局限.set scrolloff=5set backspace=indent,eol,start " Backspace键用不了,或者时灵时不灵.所以主动配置set laststatus=2 " 1=启动显示状态行, 2=总是显示状态行set wildmenu " 使用Tab键补全时,在状态栏显示匹配的列表set showmatch " 高亮显示匹配的括号set hlsearch " 高亮匹配结果set ignorecase " 搜索时默认忽略大小写set smartcase " 搜索时智能匹配大小写syntax enable " 开启语法高亮filetype plugin indent on " 检测文件类型,并载入文件类型插件,为特定文件类型载入相关缩进文件set shift 自动缩进时,缩进长度为4 set encoding=utf-8 set cursorline " 突出显示当前行set mouse=a set tabstop=4 " 设置 Tab 键宽度为 4 个空格" 禁用交换文件set noswapfile" 禁用undo文件set noundofile"Vim自动探测fileencodings的顺序列表"启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式"并且将fileencoding设置为最终探测到的字符编码方式set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8 " Vim所工作的终端的字符编码方式set autoindent " 自动缩进set autoread " 文件变化之后自动重读" 打开文件时光标返回上次离开的位置autocmd BufReadPost * execute "normal g&#39;\""" ===" === Basic Mappings" ===let mapleader=" "noremap Q :qnoremap S :w" Open the vimrc file anytimenoremap rc :e C:/Users/17724/AppData/Local/nvim/init.vim" pastennoremap P "+p" make Y to copy till the end of the linennoremap Y y$" Copy to system clipboardvnoremap Y "+y" Searchnoremap :nohlsearch" 9 key: go to the end of the linenoremap 9 $" K/J keys for 5 times k/j (faster navigation)noremap K 5knoremap J 5jmap ggVG"Searchingnoremap - Nnoremap = n" Use + arrow keys for moving the cursor around windowsnoremap knoremap jnoremap hnoremap lnoremap qf o" Disable the default s keynoremap s map sl :set splitright:vsplitmap sh :set nosplitright:vsplitmap sj :set splitbelow:splitmap sk :set nosplitbelow:split" Resize splits with arrow keysnoremap :res +5noremap :res -5noremap :vertical resize-5noremap :vertical resize+5" make new tanlinemap tu :tabemap tn :+tabnextmap tp :-tabnext" ===" === Plug" ===call plug#begin(&#39;G:\Neovim\share\nvim\plugged&#39;)Plug &#39;mhinz/vim-startify&#39;Plug &#39;arzg/vim-colors-xcode&#39;Plug &#39;voldikss/vim-translator&#39;Plug &#39;vim-airline/vim-airline&#39;Plug &#39;vim-airline/vim-airline-themes&#39;Plug &#39;neoclide/coc.nvim&#39;, {&#39;branch&#39;: &#39;release&#39;}Plug &#39;preservim/nerdtree&#39;Plug &#39;SirVer/ultisnips&#39;Plug &#39;jiangmiao/auto-pairs&#39;call plug#end()" === vim-startify ===let g:startify_custom_header = [\&#39;&#39;,\&#39;&#39;,\&#39; VVVVVVVV VVVVVVVV iiii &#39;,\&#39; V::::::V V::::::Vi::::i &#39;,\&#39; V::::::V V::::::V iiii &#39;,\&#39; V::::::V V::::::V &#39;,\&#39; V:::::V V:::::Viiiiiii mmmmmmm mmmmmmm &#39;,\&#39; V:::::V V:::::V i:::::i mm:::::::m m:::::::mm &#39;,\&#39; V:::::V V:::::V i::::i m::::::::::mm::::::::::m &#39;,\&#39; V:::::V V:::::V i::::i m::::::::::::::::::::::m &#39;,\&#39; V:::::V V:::::V i::::i m:::::mmm::::::mmm:::::m &#39;,\&#39; V:::::V V:::::V i::::i m::::m m::::m m::::m &#39;,\&#39; V:::::V:::::V i::::i m::::m m::::m m::::m &#39;,\&#39; V:::::::::V i::::i m::::m m::::m m::::m &#39;,\&#39; V:::::::V i::::::im::::m m::::m m::::m &#39;,\&#39; V:::::V i::::::im::::m m::::m m::::m &#39;,\&#39; V:::V i::::::im::::m m::::m m::::m &#39;,\&#39; VVV iiiiiiiimmmmmm mmmmmm mmmmmm &#39;,\]let g:startify_session_persistence = 1let g:startify_session_delete_buffers = 1let g:startify_change_to_dir = 0let g:startify_change_to_vcs_root = 1let g:startify_fortune_use_unicode = 1let g:startify_padding_left = 3let g:startify_enable_special = 0let g:startify_session_number = 10nmap :Startifynmap :SLoadnmap :SSavenmap :SDeletenmap :SClose" === vim-colors-xcode ==let g:signify_sign_add = &#39;&#39;let g:signify_sign_change = &#39;&#39;let g:signify_sign_delete = &#39;&#39;let g:signify_sign_show_count = 0 " Don’t show the number of deleted lines." Update Git signs every time the text is changedautocmd User SignifySetup\ execute &#39;autocmd! signify&#39; |\ autocmd signify TextChanged,TextChangedI * call sy#start()colorscheme xcodedark" === vim-translator ===" Echo translation in the cmdlinenmap t

    Translatevmap t

    TranslateV" Display translation in a windownmap w

    TranslateWvmap w

    TranslateWV" Replace the text with translationnmap r

    TranslateRvmap r

    TranslateRV" Translate the text in clipboardnmap x

    TranslateX" only work in neovimnnoremap translator#window#float#has_scroll() ?\ translator#window#float#scroll(1) : "\"nnoremap translator#window#float#has_scroll() ?\ translator#window#float#scroll(0) : "\"" === vim-airline ===let g:airline#extensions#tabline#enabled = 1let g:airline_theme=&#39;murmur&#39;let g:airline#extensions#tabline#formatter = &#39;unique_tail&#39;" 10% ☰ 10/100 ln : 20 介绍" 10% - 10 percent down the top of the file" ☰ 10 - current line 10" /100 ln - of 100 lines" : 20 - current column 20" === coc.nvim ===" coc_extensionslet g:coc_global_extensiOns= [\&#39;coc-json&#39;,\&#39;coc-marketplace&#39;,\&#39;coc-vimlsp&#39;,\&#39;coc-clangd&#39;,\&#39;coc-powershell&#39;]"----------------------------------------------------------------------" 基本配置"----------------------------------------------------------------------" Coc约束 -- 没设置可能导致文本编辑失败set hidden" 刷新时间set updatetime=100" Coc约束set shortmess+=c" coc的tab补全inoremap \ pumvisible() ? "\<C-n>" :\ check_back_space() ? "\<TAB>" :\ coc#refresh()inoremap pumvisible() ? "\<C-p>" : "\<C-h>"function! s:check_back_space() abortlet col = col(&#39;.&#39;) - 1return !col || getline(&#39;.&#39;)[col - 1] =~# &#39;\s&#39;endfunction"----------------------------------------------------------------------" 补全配置"----------------------------------------------------------------------" 使用CR 确认补全inoremap pumvisible() ? "\<C-y>" : "\<C-g>u<CR>"" 对 log 文件禁用补全autocmd FileType log let b:coc_suggest_disable = 1"----------------------------------------------------------------------" 功能配置"----------------------------------------------------------------------let g:coc_enable_locatiOnlist= 0" 下一个占位符let g:coc_snippet_next = &#39;&#39;" 上一个占位符let g:coc_snippet_prev = &#39;&#39;" 格式化代码xmap <Leader>F <Plug>(coc-format-selected)nmap <Leader>F <Plug>(coc-format-selected)" 支持json注释autocmd FileType json syntax match Comment +\/\/.\+$+" 显示当前buffer下的错误信息nmap <silent> <Leader>el :CocList diagnostics<CR>" 下一个错误nmap en

    (coc-diagnostic-next)" 上一个错误nmap <silent> <Leader>em <Plug>(coc-diagnostic-prev)" 转到定义nmap td

    (coc-definition)" 转到类型定义nmap <silent> <Leader>ty <Plug>(coc-type-definition)" 转到实现nmap ti

    (coc-implementation)" 转到声明nmap <silent> <Leader>tc <Plug>(coc-declaration)" 转到引用nmap tr

    (coc-references)" show documentation in preview window.nnoremap <silent> <LEADER>h :call <SID>show_documentation()<CR>function! s:show_documentation()if (index([&#39;vim&#39;,&#39;help&#39;], &filetype) >= 0)execute &#39;h &#39;.expand(&#39;&#39;)elseif (coc#rpc#ready())call CocActionAsync(&#39;doHover&#39;)elseexecute &#39;!&#39; . &keywordprg . " " . expand(&#39;&#39;)endifendfunction" Highlight the symbol and its references when holding the cursor.autocmd CursorHold * silent call CocActionAsync(&#39;highlight&#39;)" Symbol renaming.nmap <leader>rn <Plug>(coc-rename)"----------------------------------------------------------------------" 多光标配置"----------------------------------------------------------------------" 在当前位置放下光标nmap <silent> <C-i> <Plug>(coc-cursors-position)" 在选中位置放下光标xmap

    (coc-cursors-range)" 选中相同的单词nmap <expr> <silent> <C-;> <SID>select_current_word()function! s:select_current_word()if !get(g:, &#39;coc_cursors_activated&#39;, 0)return "\

    (coc-cursors-word)"endifreturn "*\

    (coc-cursors-word):nohlsearch\"endfunc" Remap for do codeAction of selected regionfunction! s:cocActionsOpenFromSelected(type) abortexecute &#39;CocCommand actions.open &#39; . a:typeendfunctionxmap a

    (coc-codeaction-selected)nmap aw

    (coc-codeaction-selected)w" === NERDTree ===let g:NERDTreeDirArrowExpandable = &#39;▸&#39;let g:NERDTreeDirArrowCollapsible = &#39;▾&#39;nnoremap tt :NERDTreeToggle<CR>nnoremap ff :NERDTreeFind<CR>" NerdCommenter" Create default mappingslet g:NERDCreateDefaultMappings = 1" Add spaces after comment delimiters by defaultlet g:NERDSpaceDelims = 1" Use compact syntax for prettified multi-line commentslet g:NERDCompactSexyComs = 1" Align line-wise comment delimiters flush left instead of following code indentationlet g:NERDDefaultAlign = &#39;left&#39;" Set a language to use its alternate delimiters by defaultlet g:NERDAltDelims_java = 1" Add your own custom formats or override the defaultslet g:NERDCustomDelimiters = { &#39;c&#39;: { &#39;left&#39;: &#39;/**&#39;,&#39;right&#39;: &#39;*/&#39; } }" Allow commenting and inverting empty lines (useful when commenting a region)let g:NERDCommentEmptyLines = 1" Enable trimming of trailing whitespace when uncommentinglet g:NERDTrimTrailingWhitespace = 1" Enable NERDCommenterToggle to check all selected lines is commented or not let g:NERDToggleCheckAllLines = 1" === UltiSnips ===let g:UltiSnipsExpandTrigger="<c-e>"let g:UltiSnipsJumpForwardTrigger="<c-k>"let g:UltiSnipsJumpBackwardTrigger="<c-j>"let g:UltiSnipsSnippetDirectories = [&#39;~/AppData/Local/nvim/ultisnips&#39;]noremap r :call CompileRunGcc()func! CompileRunGcc()exec "w"if &filetype == &#39;c&#39;exec "!gcc % -o %< & %<" elseif &filetype == &#39;cpp&#39;set splitbelowexec "!g++ -Wall % -o %<""exec "! %<":sp:res -5:term %< endif endfunc

  • cpp.snippets

    snippet head "An entire header" #include #include #include ${0}endsnippetsnippet using "using namespace std"using namespace std;${0}endsnippetsnippet cout "cout"cout << ${1} << endl;${0}endsnippetsnippet scanf "scanf"scanf("%${1}",&${2});${0}endsnippetsnippet for "loop"for(int ${1};${2} < ${3:length};${4}++) {${0}}endsnippetsnippet main "int main"int main(){${0}return 0;}endsnippet


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • Python中sys模块的功能及用法详解
    本文详细介绍了Python中sys模块的功能及用法,包括对解释器参数和功能的访问、命令行参数列表、字节顺序指示符、编译模块名称等。同时还介绍了sys模块中的新功能和call_tracing函数的用法。推荐学习《Python教程》以深入了解。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 本文介绍了200个经典c语言源代码,包括函数的使用,如sqrt函数、clanguagefunct等。这些源代码可以帮助读者更好地理解c语言的编程方法,并提供了实际应用的示例。 ... [详细]
author-avatar
Cherish雪蕊诗_425
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有