VIM:设置一个键映射,以替换Set列中的“与”(&;)符号
我想设置一个键映射,这样当我键入这个键(在我的示例中特别是F7键)时,它会用一个符号(&)替换第6列中的任何字符 我正在努力VIM:设置一个键映射,以替换Set列中的“与”(&;)符号,vim,Vim,我想设置一个键映射,这样当我键入这个键(在我的示例中特别是F7键)时,它会用一个符号(&)替换第6列中的任何字符 我正在努力 :nnoremap <F7> 6| R &<ESC> :nnoremap 6|R& 然而,这似乎没有起到作用,我似乎无法理解为什么 为什么我试错了 然而,这似乎没有起到作用,我似乎无法理解为什么 那么…它做了什么而不是你期望的 无论如何,您的映射存在许多问题: 不能在映射中使用文字管道字符。您必须对其进行转义(\\\124;)或改用,这
:nnoremap <F7> 6| R &<ESC>
:nnoremap 6|R&
然而,这似乎没有起到作用,我似乎无法理解为什么
为什么我试错了
然而,这似乎没有起到作用,我似乎无法理解为什么
那么…它做了什么而不是你期望的
无论如何,您的映射存在许多问题:
\\\124;
)或改用
,这为我们提供了以下信息:
nnoremap <F7> 6\| R &<Esc>
nnoremap <F7> 6<Bar> R &<Esc>
R
将您置于替换模式。这是无用的,因为您只替换一个字符,它会强制您将
切换到正常模式。改用r
:
nnoremap <F7> 6\|r&
nnoremap 6\| r&
请参见:help R
和:help R
\\\124;
)或改用
,这为我们提供了以下信息:
nnoremap <F7> 6\| R &<Esc>
nnoremap <F7> 6<Bar> R &<Esc>
R
将您置于替换模式。这是无用的,因为您只替换一个字符,它会强制您将
切换到正常模式。改用r
:
nnoremap <F7> 6\|r&
nnoremap 6\| r&
请参见:help R
和:help R
或者,将光标移回其原始位置(即更换前的位置)也可能有用。要执行此操作,请使用:
nnoremap <F7> :let a=getpos(".")<cr>6\|r&:call cursor(a[1],a[2])<cr>
nnoremap:let a=getpos(“.”)6\| r&:call cursor(a[1],a[2])
这张地图是这样分解的:
将光标位置保存在变量:让a=getpos(“.”
a
在前面的回答中进行了解释6\\r&
将游标返回到其原始位置:调用游标(a[1],a[2])
nnoremap <F7> :let a=getpos(".")<cr>6\|r&:call cursor(a[1],a[2])<cr>
nnoremap:let a=getpos(“.”)6\| r&:call cursor(a[1],a[2])
这张地图是这样分解的:
将光标位置保存在变量:让a=getpos(“.”
a
在前面的回答中进行了解释6\\r&
将游标返回到其原始位置:调用游标(a[1],a[2])
- 给你:
:map <F7> 05lr&
:地图05lr&
无路可逃。只需输入并按回车键。实际上是在输入那些字符——小于号、大写字母F、数字7等等。给你:
:map <F7> 05lr&
:地图05lr&
无路可逃。只需输入并按回车键。实际上是在输入那些字符——小于号、大写字母F、数字7等等。如果您已经将其标记为与Fortran相关的字符,您是否关心该字符是空白还是零?我不关心该字符的标识是什么。如果我对固定格式Fortran标准理解得足够透彻,只需在第6列中放置任何非空字符,下一行就可以从上一行结束的地方继续。我之所以用Fortran标记它,是因为这样的动机,以防其他Fortran开发人员已经解决了这个问题。我问这个问题的原因正是因为第6列中的
0
与那里的&
不同。鉴于您已经将它标记为与Fortran相关的内容,你在乎这个角色是空白还是零吗?我不在乎这个角色的身份是什么。如果我对固定格式Fortran标准理解得足够透彻,只需在第6列中放置任何非空字符,下一行就可以从上一行结束的地方继续。我之所以用Fortran来标记这个问题,是因为这样做是为了防止其他Fortran开发人员解决这个问题。我问这个问题的原因正是因为第6列中的0
与那里的&
不同。