在另一个线程中,有人建议将这种极好的映射作为大写 SQL 关键字的一种方式:
noremap <leader>s <Esc>:s/\v<select>\|<from>\|<insert>\|<into>\|<table>\|<where>\|<delete>\|<limit>\|<order>\|<by>\|<asc>\|<desc>\|<set>\|<update>/\U\0/g<Return>
Run Code Online (Sandbox Code Playgroud)
但是,似乎<insert>和<delete>是 VIM 关键字。一个人如何逃脱他们?在他们之前的明显尝试是\行不通的!
谢谢。
在这种情况下,由于这发生在正则表达式中,您可以通过使用分组共享 <> 字符来分解这些序列来解决该问题:
noremap <leader>s <Esc>:s/\v<(select\|from\|insert\|into\|table\|where\|delete\|limit\|order\|by\|asc\|desc\|set\|update)>/\U\0/g<Return>
Run Code Online (Sandbox Code Playgroud)
更一般地,您可以<用<Char-0x3c>, 0x3c 作为字符的 ASCII 值替换字符(所有字符或只是问题词之前的<字符)。