vim是一个好用的编辑器,但是配置不好就像拿到了屠龙刀缺只会用来拍黄瓜一样,十分难受。小伙伴们有没有哪种可以直接抄作业的配置方案。
就…默认呗。
我都是在 ssh 里用的
默认是真的难受 我自己接受不了,不知道你们咋用的
你需要啥功能啊,我的需求就是改改配置文件…
有没有对gb18030支持比较好的文本编辑器啊,
现在只找到cnbook、Textpro、wxMEdit这三个能直接打开就识别为18030,而不需要手动切换编码
事实上, 很多编辑器都是有 “自动识别编码” 的设定的.
姑且以 Visual Studio Code 为例. 可修改配置:
"files.autoGuessEncoding": true
当然了, 我不知道这个功能是否跟您的文本相容; 因为, 我不是您, 我没有 18030 文本.
我听说您想要维姆配置.
正如蛙蛙所言, 您无妨说说您的需求.
我跟他一样, 很少使用维姆本身. 我一般在别的编辑器使用维姆模式罢.
最近一直在打乳胶文本; 所以, 我就不切换标点为 “全角” 了.
为啥你的账号被ban了还能发言
我想, 您看到了下面的文字, 对罢.
The account is being banned
请您视其为符号; 它没有什么特殊意义; 我也没有被禁言.
github上挺多的,不妨搜寻一下
我现在用的是这个 GitHub - SpaceVim/SpaceVim: A community-driven modular vim/neovim distribution - The ultimate vimrc
但是我自己用的就只有补全和语法高亮,这个对我来说有一些臃肿,所以在找一些简单够用的配置
原来如此
gb18030相当于中文版的utf8,很多软件就算开启了自动识别,依然是无法真的识别的,好像是gb18030和utf8太像了
我需要这个功能是因为输入法码表是这个
我是拿这位大佬做的配置
改的,还不错。
文件 ~/.vimrc
或 _vimrc
,看需要添加,代码前后加上 mark 标记可以折叠和管理,方便删除。
- 剪切板,使 y,d,x,p 和 ctrl-c 和 ctrl-v 一个效果,并且能互相混用。
Summary
" clipboard {{{
" y,d,x,p 和 ctrl-c和ctrl-v 一个效果,并且能互相混用。
" 生效前提:使用命令 vim --version 的结果中 Ex 命令中中有+clipboard,如果是-,表明不适用
" 但还是建议使用ctrl+insert复制,shift+insert粘贴,这个是通用的
set clipboard=unnamed
" }}}
- 乱码问题,不同编辑器环境下,还要对应的做测试。
Summary
"encoding {{{
"set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set encoding=utf-8
"set termencoding=cp936
language messages zh_CN.UTF-8
"}}}
- 设置颜色主题,还是从默认主题中选一个的好,主题插件会引起性能问题。
Summary
" 设置颜色主题 {{{
" 使用默认的主题
" color evening " 夜间主题
" 使用vimdiff (或者 vim -d)命令时, 颜色可能难以辨别, 此时换个主题就可以了 {{{
" 经测试, 亮色主题有shine, 暗色主题有pablo,
colorscheme pablo
" 这两个主题都能很好的显示出文件的不同之处 }}}
" }}}
- 设置 gvim 显示字体
Summary
" GUI {{{
" 设置 gvim 显示字体 {{{
" https://stackoverflow.com/questions/3316244/set-gvim-font-in-vimrc-file
" let g:Powerline_colorscheme='solarized256'
" 以下字体搭配默认主题挺不错的, 还不卡顿...
if has("gui_running")
if has("gui_gtk2")
set guifont=Inconsolata\12
elseif has("gui_macvim")
set guifont=Menlo\ Regular:h14
elseif has("gui_win32")
set guifont=Consolas:h12:cANSI " 可以对数字进行调整来修改字体大小
endif
endif
" }}}
- 相对行号,方便上下跳转
Summary
" 显示行号 {{{
" Make the line number of the line where the cursor is not displayed as 0
set number
" show relative number
" 直接查看代码片段占用多少行
" 使用比如 7j 和 7k 向下或者向上移动 7 行
" 使用比如 d7j 和 7dk 向下或者向上删除 7 行
set relativenumber
" }}}
- 状态栏外观
Summary
" 总是显示状态栏
set laststatus=2
" 显示光标当前位置
set ruler
- 文本渲染
Summary
" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on
" 在vimdiff命令时关闭语法高亮, 看得更清晰
if &diff
syntax off
endif
- 设置 vim 文本折叠方式为 marker,并设置打开文件时自动跳转到上次退出编辑的位置。
三个左右花括号配对出现,使用 zo, zc, zm 等快揵键折叠,或展开,前后可以加注释 (如//{{{
// }}}
),所以不会影响原有代码。
Summary
" vim 文件折叠方式为 marker : set foldmethod=marker {{{
set foldmethod=marker
augroup ft_vim
au!
autocmd FileType vim setlocal foldmethod=marker
" 打开文件总是定位到上次编辑的位置
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
augroup END
" }}}
- 设置 tab 键的大小为 2,并用空格替换 tab 制表符(对应的可以用vim 命令
:retab
)
Summary
" Format {{{
" 以下是设置tab的步长为2
set shiftwidth=2
set softtabstop=2
set tabstop=2 " 设置编辑时制表符占用空格数
set expandtab " 将制表符扩展为空格
" 禁止折行,折行
set nowrap
" 更加平滑的逐个字符扩展显示,在用 `l` 键右移超出屏幕显示范围时,显示效果会好一些。
set sidescroll=1
" }}}
- F5 一键编译并运行代码
Summary
" Press F5 to run code {{{
" 按F5一键编译并运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -DLOCAL -o %<"
exec "! ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -std=c++11 -DLOCAL -Dxiaoai -o %<"
exec "! ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "! java %<"
elseif &filetype == 'sh'
:! bash %
elseif &filetype == 'python'
exec "! python %"
endif
endfunc
" }}}
- 插件 vimplug
- vimcdoc, vim 的中文文档。
- fern, 比 nerdtree 快速,但目前只有 youtube 上有相关教程,可用来当作文件管理器。
2.1 我感觉它最实用的功能是批量重命名,步骤是shift+v
选中文件范围,减号-
确定选中文件,shift+r
对于选中的文件进名进行编辑。因为 vim 自带强大的文本替换命令,所以编辑也很方便,:w
保存,如果编辑了文件路径,将会移动文件。
2.2 相关教程:Switching from NERDTree to Fern for a Vim Tree View Plugin - YouTube
Fern Vim: It's Been Fun Netrw, But I Have A Better File Tree - YouTube
文名重命名时会打开一个文本缓冲区,类似 total commander 的批量重命名时的用编辑器编辑.
Summary
" Plugins {{{
" PlugInstall! and PlugUpdate
call plug#begin('~/.vim/plugged')
Plug 'yianwillis/vimcdoc' " vim 中文文档
Plug 'lambdalisue/fern.vim' " fern Tree,better than nerdtree
Plug 'maralla/completor.vim' " code completion framework for vim8. https://github.com/maralla/completor.vim
" Initialize plugin system
set rtp+=~/.vim/
call plug#end()
" Plugins_end }}}
推荐这个:GitHub - amix/vimrc: The ultimate Vim configuration (vimrc)
GitHub排名第一,没有太复杂的框架配置,安装插件也很方便,属于不重不轻的配置,强烈推荐
那就是说, 您只在特定的一个目录下有这个需求, 对吗?
如果这样, 您可以考虑局部地修改默认编码.
Visual Studio Code 有所谓的 “工作区”.
假如文件的扩展名是固定的, 您甚至可以只为特定的一类文件设置默认编码.
我用这个编辑器主要是界面较为现代与简洁.
请容许我稍微离题.
我一般使用 “维姆模拟器”:
不过, 我确实不太了解真维姆的配置; 所以, 您看看别人分享的配置罢.
假如有人对这个维姆模拟器的配置感兴趣, 我倒是可附上我的配置.
放置下面的 {
跟 }
内的文字到 settings.json
的最外层的 {
跟 }
内.
{
"vim.easymotion": true,
"vim.foldfix": true,
"vim.hlsearch": true,
"vim.insertModeKeyBindingsNonRecursive": [
{
"after": [
"<Esc>"
],
"before": [
"j",
"j"
]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"<leader>",
"/"
],
"commands": [
":noh"
]
},
{
"before": [
"<leader>",
"1"
],
"commands": [
"workbench.action.showCommands"
]
},
{
"before": [
"<leader>",
"b"
],
"commands": [
"workbench.action.toggleSidebarVisibility"
]
}
],
"vim.smartRelativeLine": true,
"vim.sneak": true,
"vim.useSystemClipboard": true,
"vim.visualModeKeyBindingsNonRecursive": [
{
"after": [
"p",
"g",
"v",
"y"
],
"before": [
"p"
]
},
{
"before": [
"<leader>",
"/"
],
"commands": [
":noh"
]
},
{
"before": [
"<leader>",
"1"
],
"commands": [
"workbench.action.showCommands"
]
},
{
"before": [
">"
],
"commands": [
"editor.action.indentLines"
]
},
{
"before": [
"<"
],
"commands": [
"editor.action.outdentLines"
]
}
]
}
放置下面的 [
跟 ]
内的文字到 keybindings.json
的最外层的 [
跟 ]
内. 参考这里.
[
{
"key": "up",
"command": "cursorUp",
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode == 'Insert' && !suggestWidgetMultipleSuggestions && !suggestWidgetVisible"
},
{
"key": "down",
"command": "cursorDown",
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode == 'Insert' && !suggestWidgetMultipleSuggestions && !suggestWidgetVisible"
}
]
對於編碼轉換,我覺的akelpad做的非常好,你可以在打開文件之後任意設置打開編碼及保存編碼。
你提到的cnbook、textpro,這兩款我都有用出bug,因此我後來就不用了。
wxMEdit沒用過。
手機上也有好幾款好用的文本編輯器,我最喜歡的是jota。