笨熊之家

欢迎来到笨熊之家~

0%

Vimtutor中使用:help出现E434错误

阅读vimtutor时,进行到7.1处,文中提到

1
2
3
4
5
6
7
You can find help on just about any subject, by giving an argument to the
":help" command. Try these (don't forget pressing <ENTER>):

:help w
:help c_CTRL-D
:help insert-index
:help user-manual

输入:help w后提示
1
2
E434: Can't find tag pattern
Press ENTER or type command to continue

之后在上方新开窗口中出现乱码,无法正常阅读。
在网上寻找此类问题的解决方案,许多人说重新安装,不过我并不觉得重装是个好方法。网上关于这一问题的讨论还是有的,但大多并不能解决我的问题,直到我看到了在Google Groups的讨论。

其中James McCoy提到

Looks like your system ships with gzipped help files. When you run
vimtutor, plugins aren’t loaded. The gzip plugin is what normally
handles uncompressing the help files, but since it isn’t loaded Vim just
opens the compressed file and can’t find the tag to jump to.

他的意思是当使用vimtutor命令时,vim并不会加载gzip插件,而帮助文档是gzip格式的,所以在tutor中使用:help+tag时无法正常打开文件。
于是我使用vim TEST打开本地文件,尝试同样的命令,发现可以正常查看帮助文档。接着Christian Brabandt上传一个diff的附件,文件中显示了对vimtutor脚本的更改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
diff -r 917ffa98aeeb src/vimtutor
--- a/src/vimtutor Wed Sep 09 22:45:04 2015 +0200
+++ b/src/vimtutor Mon Sep 14 09:01:01 2015 +0200
@@ -70,5 +70,5 @@
# The script tutor.vim tells Vim which file to copy
$VIM -f -u NONE -c 'so $VIMRUNTIME/tutor/tutor.vim'

-# Start vim without any .vimrc, set 'nocompatible'
-$VIM -f -u NONE -c "set nocp" $TUTORCOPY
+# Start vim without any .vimrc, set 'nocompatible' and load the gzip Plugin
+$VIM -f -u NONE -c "set nocp" -c 'ru plugin/gzip.vim' $TUTORCOPY
diff -r 917ffa98aeeb vimtutor.bat
--- a/vimtutor.bat Wed Sep 09 22:45:04 2015 +0200
+++ b/vimtutor.bat Mon Sep 14 09:01:01 2015 +0200
@@ -41,7 +41,7 @@
IF ERRORLEVEL 1 GOTO use_vim

:: Start gvim without any .vimrc, set 'nocompatible'
-start "dummy" /b /w gvim -u NONE -c "set nocp" %TUTORCOPY%
+start "dummy" /b /w gvim -u NONE -c "set nocp" -c "ru plugin/gzip.vim" %TUTORCOPY%

GOTO end

针对系统中的vimtutor脚本,我对应的做了修改,即上述修改中的:
1
2
3
4
-# Start vim without any .vimrc, set 'nocompatible'
-$VIM -f -u NONE -c "set nocp" $TUTORCOPY
+# Start vim without any .vimrc, set 'nocompatible' and load the gzip Plugin
+$VIM -f -u NONE -c "set nocp" -c 'ru plugin/gzip.vim' $TUTORCOPY

这里我并没有直接修改/usr/bin/vimtutor这个脚本,而是通过cp命令拷贝一份至用户目录,随后修改这一份脚本,然后
1
2
3
4
5
vim ~/.bashrc
# 添加一行 alias vimtutor='~/vimtutor_script_modified'
# 也就是修改命令别名,使vimtutor指向用户目录下修改后的vimtutor脚本
. ~/.bashrc
# .即source,这里是执行更新后的bashrc文件以便应用更改于shell

之后便可以在使用vimtutor命令打开的vimtutor文档中正常使用:help w等命令查看帮助文档啦~