在Vim中获取语法突出显示的关键字

时间:2013-11-18 06:33:18

标签: vim

我正在尝试编写一个简单的vim脚本用于学习目的。我想要做的是在下面的文本中大写所有合成文字高度关键词。

select column_name(s)
FROM table1
inner join table2
on table1.column_name=table2.column_name;

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

当然我可以通过正则表达式搜索和替换来完成,但我希望它是基于vim中当前使用的syntaxt文件自动完成的。我不想再次对所有关键字进行硬编码。

1 个答案:

答案 0 :(得分:0)

我还没有尝试过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>

适用于您示例中的selecton。我不知道innerjoin在哪里,所以我留给你。希望它有所帮助。