Vim “有没有办法关掉?”;附加到寄存器?
发件人:help“A “只有当您这样说时,Vim才会填充这些寄存器。将它们指定为小写 替换先前内容的字母或作为大写字母附加 添加到以前的内容” 有没有办法关掉这个Vim “有没有办法关掉?”;附加到寄存器?,vim,Vim,发件人:help“A “只有当您这样说时,Vim才会填充这些寄存器。将它们指定为小写 替换先前内容的字母或作为大写字母附加 添加到以前的内容” 有没有办法关掉这个 这非常烦人:当我按住shift键键入双引号“以附加到寄存器时,通常情况下我按住shift键的时间太长,并输入“a”而不是“a”(因此它附加到寄存器a而不是完全替换它)如果您希望实现@romainl建议的内容,则可以在六行中完成(如果您不介意使用幻数、保留不需要的变量并在运算符挂起模式下重新映射,则为三行): 。但是这个解决方案有一个缺
这非常烦人:当我按住shift键键入双引号“以附加到寄存器时,通常情况下我按住shift键的时间太长,并输入“a”而不是“a”(因此它附加到寄存器a而不是完全替换它)如果您希望实现@romainl建议的内容,则可以在六行中完成(如果您不介意使用幻数、保留不需要的变量并在运算符挂起模式下重新映射,则为三行):
。但是这个解决方案有一个缺点:你现在失去了在按下
“
和a
之间无限期等待的能力(除非你想设置notimeout
,它本身就有问题)。我最后写了一个小补丁,添加了一个“registerappend”选项
…使用此功能,您可以:设置noregisterappend
以禁用它
diff -r 4cb1f10316ca -r aedf9e836670 src/ops.c
--- a/src/ops.c Thu Oct 11 04:44:33 2012 +0200
+++ b/src/ops.c Tue Oct 16 01:28:47 2012 -0700
@@ -894,7 +894,8 @@ get_yank_register(regname, writing)
else if (ASCII_ISUPPER(i))
{
i = CharOrdUp(i) + 10;
- y_append = TRUE;
+ if(p_regappend)
+ y_append = TRUE;
}
else if (regname == '-')
i = DELETION_REGISTER;
diff -r 4cb1f10316ca -r aedf9e836670 src/option.c
--- a/src/option.c Thu Oct 11 04:44:33 2012 +0200
+++ b/src/option.c Tue Oct 16 01:28:47 2012 -0700
@@ -2068,6 +2068,9 @@ static struct vimoption
(char_u *)NULL, PV_NONE,
#endif
{(char_u *)2000L, (char_u *)0L} SCRIPTID_INIT},
+ {"registerappend", NULL, P_BOOL,
+ (char_u *)&p_regappend, PV_NONE,
+ {(char_u *)TRUE, (char_u *)TRUE} SCRIPTID_INIT},
{"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
(char_u *)VAR_WIN, PV_RNU,
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
diff -r 4cb1f10316ca -r aedf9e836670 src/option.h
--- a/src/option.h Thu Oct 11 04:44:33 2012 +0200
+++ b/src/option.h Tue Oct 16 01:28:47 2012 -0700
@@ -495,6 +495,7 @@ EXTERN char_u *p_popt; /* 'printoptions'
EXTERN char_u *p_header; /* 'printheader' */
#endif
EXTERN int p_prompt; /* 'prompt' */
+EXTERN int p_regappend; /* 'registerappend' */
#ifdef FEAT_GUI
EXTERN char_u *p_guifont; /* 'guifont' */
# ifdef FEAT_XFONTSET
这可能是硬编码的。您可能会将所有的
“Xy
映射到”Xy
,但更积极地训练手指肯定更聪明。
diff -r 4cb1f10316ca -r aedf9e836670 src/ops.c
--- a/src/ops.c Thu Oct 11 04:44:33 2012 +0200
+++ b/src/ops.c Tue Oct 16 01:28:47 2012 -0700
@@ -894,7 +894,8 @@ get_yank_register(regname, writing)
else if (ASCII_ISUPPER(i))
{
i = CharOrdUp(i) + 10;
- y_append = TRUE;
+ if(p_regappend)
+ y_append = TRUE;
}
else if (regname == '-')
i = DELETION_REGISTER;
diff -r 4cb1f10316ca -r aedf9e836670 src/option.c
--- a/src/option.c Thu Oct 11 04:44:33 2012 +0200
+++ b/src/option.c Tue Oct 16 01:28:47 2012 -0700
@@ -2068,6 +2068,9 @@ static struct vimoption
(char_u *)NULL, PV_NONE,
#endif
{(char_u *)2000L, (char_u *)0L} SCRIPTID_INIT},
+ {"registerappend", NULL, P_BOOL,
+ (char_u *)&p_regappend, PV_NONE,
+ {(char_u *)TRUE, (char_u *)TRUE} SCRIPTID_INIT},
{"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
(char_u *)VAR_WIN, PV_RNU,
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
diff -r 4cb1f10316ca -r aedf9e836670 src/option.h
--- a/src/option.h Thu Oct 11 04:44:33 2012 +0200
+++ b/src/option.h Tue Oct 16 01:28:47 2012 -0700
@@ -495,6 +495,7 @@ EXTERN char_u *p_popt; /* 'printoptions'
EXTERN char_u *p_header; /* 'printheader' */
#endif
EXTERN int p_prompt; /* 'prompt' */
+EXTERN int p_regappend; /* 'registerappend' */
#ifdef FEAT_GUI
EXTERN char_u *p_guifont; /* 'guifont' */
# ifdef FEAT_XFONTSET