作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一个函数中,如何确定该函数是否是从可视 block 模式调用的。这涉及从以下位置调用函数:
对于精确的功能,幸运的是它在普通/命令模式或可视模式下都具有相同的行为,并选择了一条线。显然有不止一行 - 来自 a:firSTLine/laSTLine
- 该函数不是从正常模式调用的。
现在的问题是我需要知道我是否处于视觉 block 模式,单行或非单行。
我尝试了以下所有方法都无济于事:
function! T() range
echo [a:firstline, a:lastline]
echo [getpos("'<")[1:2], getpos("'>")[1:2]]
echo visualmode()
echo mode()
endfun
vnoremap TT :call T()<CR>
nnoremap TT :call T()<CR>
视觉模式的输出(注意疯狂的 max-int 输出):
[3, 4]
[[3, 1], [4, 2147483647]]
V
n
我需要各种“无法完成”或“逐步完成”的答案。没有含糊的做这个然后做那个然后完成这个......我厌倦了跳过晦涩的 VIM Goldberg-esque 漏洞只是为了完成任何内置功能不提供的简单任务,老实说我的 vim -fu 还年轻。
最佳答案
只需像这样调用您的函数:
vnoremap TT :call T(visualmode())<CR>
nnoremap TT :call T('')<CR>
如果参数为空,则该函数是从正常模式调用的。否则,传递的字符表示视觉模式(即 v
与 V
与 ^V
)。
关于VIM:确定函数是否从可视 block 模式调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29091614/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!