当我尝试使用vim
打开文件进行编辑时,我收到以下消息并检测到错误消息。
Jashs-MacBook-Pro:hello jashjacob$ vim hello.rb
--- Auto-Commands ---
filetypedetect BufRead
*if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat | runtime! scripts.vim | endif
*if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'^I|| getline(4) =~ '^#' || getline(5) =~ '^#') | setf conf | endif
Error detected while processing /usr/share/vim/vimrc:
line 18:
E116: Invalid arguments for function line("'"") > 0 && line ("'"") <= line("$") |
E15: Invalid expression: line("'"") > 0 && line ("'"") <= line("$") |
Press ENTER or type command to continue
我的vim编辑器文件是否已损坏/修改?如何修复处理/usr/share/vim/vimrc
时检测到的错误?
/usr/share/vim/vimrc
配置文件包含以下内容
" Configuration file for vim
set modelines=0 " CVE-2007-2438
" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible " Use Vim defaults instead of 100% vi compatibility
set backspace=2 " more powerful backspacing
set ai " auto indenting
set history=100 " keep 100 lines of history
set ruler " show the cursor position
syntax on " syntax highlighting
set hlsearch " highlight the last searched term
filetype plugin on " use the file type plugins
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
if ! exists("g:leave_my_cursor_position_alone") |
if line("'"") > 0 && line ("'"") <= line("$") |
exe "normal g'"" |
endif |
endif
" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup
答案 0 :(得分:1)
我不是vimscript大师,所以也许有人可以提供更多修复,但我可以建议,如果你只是想让vim再次工作,你可以注释掉这个功能。导致麻烦。在每行之前加上一个双引号("
),你应该能够继续下去。
像这样:
" When editing a file, always jump to the last cursor position
"autocmd BufReadPost *
" if ! exists("g:leave_my_cursor_position_alone") |
" if line("'"") > 0 && line ("'"") <= line("$") |
" exe "normal g'"" |
" endif |
" endif
如果要保留此功能,可能需要学习一些vimscript。 :)
答案 1 :(得分:1)
您不支持在/ usr / share / vim /.
中执行任何操作您编辑的文件不属于您,不应更改。这些是你可以做任何你想做的事情的文件和地方:
~/.vim/ <-- put your plugins and colorschemes in this directory
~/.vimrc <-- add your options and mappings to this file
关于你的问题:
这些行未通过插件添加,它们是由您或有权访问您计算机的其他人添加的。
他们抛出一个错误,因为粘贴它们的傻瓜以某种方式认为删除the "original"(或this "original"或{{3}中的行继续反斜杠是个好主意邮件中的旧链接指向404,或$VIMRUNTIME/vimrc_example.vim
中更简单的版本。
永远不要运行您在互联网上找到的命令,除非您确定它不会造成麻烦。
答案 2 :(得分:0)
我认为这些错误消息也可能来自您错过或错过了.vimrc中的“set nocompatible”这一事实。这将导致你的Vim误解了用于在其脚本文件中继续长行的反斜杠。最好在.vimrc文件的最开头加上“set nocompatible”。
如果您在错误消息中看到“ if!did_filetype()...”并将其与/usr/share/vim/vim{yourversion}/filetype.vim中的代码进行比较,您可以告诉那里应该是“”和“if”之间的“\”。