我对我的.vimrc文件做了几处更改,其中包括几个vim-plug插件、一些语法/着色选项和一些键映射。
然而,每当我打开一个新的 Vim 会话时,并不是所有这些都被应用(最显着的是着色和语法突出显示)。如果我运行:so ~/.vimrc该文件,则会立即应用更改。显然,我不想每次启动 vim 时都必须这样做。
为什么不自动应用这些更改?(这是在完全重启和新的终端/vim 会话之后)。
更新
我发现这与tmux相关。当我vim直接从终端运行时,.vimrc按预期应用。如果我vim从tmux会话内部运行,那么我每次都必须手动获取文件。
任何想法如何解决这个问题?
~/.vimrc 内容:
" PLUGINS - see vim-plug
call plug#begin()
Plug 'crusoexia/vim-monokai'
Plug 'pangloss/vim-javascript'
Plug 'crusoexia/vim-javascript-lib'
call plug#end()
" Enable Monokai colors
syntax on
colorscheme monokai
set t_Co=256
" Easy tab movement with keys 1|2
nmap 1 :tabp <enter>
nmap 2 :tabn <enter>
" Line Numbers
set number
" 2 space tabs
set …Run Code Online (Sandbox Code Playgroud) 我用了:
set listchars=tab:?\ ,trail:·,precedes:?,extends:?,nbsp:·,space:·
Run Code Online (Sandbox Code Playgroud)
渲染空格和制表符。
但是我只想显示 >=2 个空格,如果它在其他字符之间有一个空格,我不想显示。
("editor.renderWhitespace": "boundary"在vscode中是一样的)

我可以在 Vim 中做到吗?(config或plugin)
谢谢你。
编辑:我使用:
if exists('space_match')
call matchdelete(space_match)
endif
let space_match = matchadd('Conceal', '\v( @<= )|( @=)', -1, -1, {'conceal': '·'})
Run Code Online (Sandbox Code Playgroud)
-1兼容indentLine( @<= ) 匹配一个又一个空格( @=) 在另一个空格之前匹配一个空格并删除空间listchars:
set listchars=tab:?\ ,trail:·,precedes:?,extends:?,nbsp:·
Run Code Online (Sandbox Code Playgroud)
非常感谢 Ben Knoble 帮我找到了!!!
当我在 vim 中 tab 时收到此错误。
回溯(最近一次调用):
文件“<字符串>”,第1行,在<模块>
文件“utils.py”,第15行,写入
current_buffer.append('一些文本')
vim.error:Vim:E523 : 这里不允许
我有当前的 .vim 文件
if expand("%:e") == 'xml'
inoremap <expr> <tab> WriteFile()
endif
function! WriteFile()
python3 utils.write()
endfunction
Run Code Online (Sandbox Code Playgroud)
和这个 .py 文件
if expand("%:e") == 'xml'
inoremap <expr> <tab> WriteFile()
endif
function! WriteFile()
python3 utils.write()
endfunction
Run Code Online (Sandbox Code Playgroud) I'm Neovim user
and I use Plugin neoclide/coc.vim for autocompletion
but when my cursor focus out, I can not get suggestion box again
(How can I call this box? suggest box or hint box? I want to know this box name)
I want to trigger it and see again, Is there any command or variable for this?
在我的终端中打开 vim 时,我收到此错误
Error detected while processing CursorMoved Autocommands for "*"..function <SNR>
6_Highlight_Matching_Pair:
Run Code Online (Sandbox Code Playgroud)
它在启动 vim 时重复多次,然后我可以访问 vim,但是任何移动(lkjh)都会导致错误发生更多。
我已经删除了我的.vimrc,通过brew更新了我的vim。两者都没有任何影响,vim 是我首选的 IDE,因为我用插件以我更喜欢的编程方式高效地设置了它。
有人可以帮我弄清楚发生了什么吗?另外,可能重要的信息是我最近运行了一次brew更新来更新我的包管理器中的所有内容。
我正在尝试为 vim 编写一个插件vimscript,我想显示一些特定时间的日志。喜欢:
echo 'some log'
sleep 2
redraw!
Run Code Online (Sandbox Code Playgroud)
当我使用sleepand 时redraw,当前所有窗口都冻结了一段时间,但我只想为了日志而睡眠,而不是所有 vim 窗口!
我怎样才能做到这一点?
我在Vim 7中使用DrawIt插件绘制一些ascii图.
这可能太多了,但仍然 - 是否有任何插件可以在背景中显示网格,以使绘图更容易?
在过去的几个月里,当我尝试向上滚动一行时,我遇到了一个奇怪的一秒延迟<C-Y>.用<C-U>或没有这样的延迟<C-B>.
我扫描了所有的映射,我相信我已经缩小到ZenCoding插件,它有几个正常的模式映射,<C-Y>然后是一个字母.显然,按一个字母的等待时间是一秒钟,如果没有按下任何字母,它将继续默认<C-Y>行为.
在我的vimrc中,有没有办法禁用特定插件的所有普通模式映射,或者将特定映射重置为默认状态?
我目前有我的.vimrc设置,所以
s 保存我的文件d 删除以可视模式突出显示的任何文本c 将注释光标所在的任何行(或任何突出显示的行组)很明显,这阻止了我使用Surround的默认命令.有没有办法让我自己的命令.vimrc来替换Surround的默认命令?
这是我的 .vimrc
set nocompatible
filetype off " required!
set rtp+=~/.vim/bundle/vundle
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" My Bundles here:
"
" original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'jistr/vim-nerdtree-tabs'
" Bundle 'tpope/vim-haml'
Bundle 'ap/vim-css-color'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle "pangloss/vim-javascript"
" vim-scripts repos
Bundle 'surround.vim'
Bundle 'delimitMate.vim'
Bundle 'hail2u/vim-css3-syntax'
" Bundle 'AutoComplPop'
" Bundle 'ervandew/supertab'
Bundle 'snipMate'
Bundle 'tComment'
" …Run Code Online (Sandbox Code Playgroud) 根据标题,有没有办法知道哪个vim插件正在引发错误消息(当然除了禁用/启用)?我不断收到以下错误消息
Error detected while processing function <SNR>59_clear:
line 2:
E803: ID not found: 4
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚哪个插件坏了.
vim-plugin ×10
vim ×9
autocomplete ×1
bash ×1
command-line ×1
linux ×1
macos ×1
python ×1
surround ×1
tmux ×1
vi ×1