在Vim中获取语法突出显示的关键字
我正试图写一个简单的vim脚本来学习。我想做的是在下面这样的文本中将所有syntaxt关键字大写在Vim中获取语法突出显示的关键字,vim,Vim,我正试图写一个简单的vim脚本来学习。我想做的是在下面这样的文本中将所有syntaxt关键字大写 select column_name(s) FROM table1 inner join table2 on table1.column_name=table2.column_name; 到 当然,我可以通过正则表达式搜索和替换来完成,但我希望它是基于vim中当前使用的syntaxt文件自动完成的。我不想再次硬编码所有关键字 我还没有尝试过vimscript,但以下是我从几篇文章中总结的内容: f
select column_name(s)
FROM table1
inner join table2
on table1.column_name=table2.column_name;
到
当然,我可以通过正则表达式搜索和替换来完成,但我希望它是基于vim中当前使用的syntaxt文件自动完成的。我不想再次硬编码所有关键字 我还没有尝试过vimscript,但以下是我从几篇文章中总结的内容:
function! CapKeywords()
redir => lst
syntax list sqlKeyword sqlStatement
redir END
for i in split(lst)
:exe '%s/\<' . i . '\>/' . toupper(i) . '/gce'
endfor
endfunction
nnoremap <leader>h :call CapKeywords()<CR>
函数!CapKeywords()
redir=>lst
语法列表sqlKeyword sqlStatement
重拨端
对于拆分中的i(lst)
:exe“%s/\/”。图珀(我)。'/gce'
外循环
端功能
nnoremap h:调用CapKeywords()
使用示例中的
选择和打开。我不知道internal
和join
在哪里,所以我把它留给你。希望能有所帮助。我试过你的脚本,效果不错。我不喜欢的是,它将syntax组显示为输出,并要求我输入每个关键字是否替换它。我正在尝试解决这些问题。要禁用确认每个替换,需要从“/gce”中删除标志c
。作为语法组-我不知道如何修复它。要禁用输出,我已将命令更改为“静默语法列表sqlStatement”
function! CapKeywords()
redir => lst
syntax list sqlKeyword sqlStatement
redir END
for i in split(lst)
:exe '%s/\<' . i . '\>/' . toupper(i) . '/gce'
endfor
endfunction
nnoremap <leader>h :call CapKeywords()<CR>