开发者

Entering command correctly in visual mode

开发者 https://www.devze.com 2023-02-08 07:28 出处:网络
I need to do a map for visual mode to apply some commands on the selection only. This implies that the \'<,\'> needs to appear in the command line.

I need to do a map for visual mode to apply some commands on the selection only. This implies that the '<,'> needs to appear in the command line.

As they appear automatically when you type :, I did the mappings without delimiters, something like vmap ,{key} :{command}. So far it's working, they are being shown 开发者_如何学Pythonas :'<,'>{command}.

But the question is, is it safe to rely on this behaviour? Or there is a better way to do a visual map and insert the delimiters?


Yes, it's safe to rely on that behavior. Vim always insert the visual range markers ('< and '>) when you press : while in visual mode. Since a map is just a way to store a series of key presses (ignoring <expr> maps), it acts just like you had typed it.


You could use <c-u> at the start of your mapping to clear any range that might be there, and then add the range markers explicitly (:<c-u>'<,'>).

  • :help omap-info
  • :help c_CTRL-U
0

精彩评论

暂无评论...
验证码 换一张
取 消