最近我创建了一个映射来切换高亮搜索.这很简单但非常有用,类似于nmap ,m :set hlsearch!
.我遇到的唯一问题是,有时我会在按下后迷路,m
.
"它有用吗?","它现在开启还是关闭?"......恐慌中没有收到反馈的常见问题:-)
所以我认为回应"开启"或"关闭"会让我更加平静.现在这个大问题已经到来了:是否有可能在映射中包含一个小脚本?我知道我可以创建一个函数,但这不是我对这个简单脚本的意图:
if (&hlsearch)
echo "Search Highlight On"
else
echo "Search Highlight Off"
endif
Run Code Online (Sandbox Code Playgroud)
我想我需要像预处理器指令一样"逃避"新行,也许:
nmap ,m :set hlsearch! \
if (&hlsearch) \
echo "Search Highlight On" \
else \
echo "Search Highlight Off" \
endif
Run Code Online (Sandbox Code Playgroud)
但可能这不是正确的方法,不起作用,我甚至不知道是否可能.
我注意到的另一件事是打字之类的东西:if (1) echo "works"
也不起作用,即使这两个if
和echo
的"冒号"的命令.它给出了一个错误echo
.那么我需要以某种方式分离每个命令吗?在echo
另一个冒号之前并没有解决问题.
谢谢你的帮助!
无需if
在此上下文中使用.三元运算符?:
将会这样做.
nnoremap <silent> ,m :set hlsearch!<bar>echo "Search Highlight ".(&hlsearch?"On":"Off")<cr>
Run Code Online (Sandbox Code Playgroud)
而且,在这种特殊情况下,:set-?
可能就足够了:
nnoremap <silent> ,m :set hlsearch!<bar>:set hlsearch?<cr>
Run Code Online (Sandbox Code Playgroud)