![根据光标下的(部分)单词打开文件](https://linux22.com/image/1283573/%E6%A0%B9%E6%8D%AE%E5%85%89%E6%A0%87%E4%B8%8B%E7%9A%84%EF%BC%88%E9%83%A8%E5%88%86%EF%BC%89%E5%8D%95%E8%AF%8D%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6.png)
当编辑 PL/SQL 文件时,我会寻找一种方法来根据光标下的单词打开文件并最好跳转到某个位置。
文件都位于同一目录中。
示例文件 app_dummy.pkb 包含:
begin
dbms_output.put_line('Example');
app_package.procedure1( i_input1 => 'mmm' );
exception
when others then raise...
end;
寻找一种方法在另一个缓冲区中打开 app_package.pkb(已知扩展名)并将光标移动到 procedure1。
我知道有 ctags,但是并不是我工作的所有系统都具备该功能。
答案1
nmap <F2> yiw2w:split +/<C-R><C-W> <C-R>0.pkb<CR>
将光标放在包名称上,按 F2 将打开一个新缓冲区,其中包含名为 <package>.pkb 的文件,并将搜索包名称后面 . 后面的字符串。
yiw
- 提取光标下的单词(包名)
2w
- 将光标向右移动两个单词(其中 . 算作一个单词)
:split
- 拆分窗口
+
- 在新窗口中引入要执行的命令
/
- 开始搜索
<C-R><C-W>
- 插入光标下的单词(过程名)
<C-R>0
- 插入寄存器 0(零)的内容,即提取寄存器
.pkb
- 添加文件后缀
<CR>
- 终止并执行 :split 命令
这些字符必须按字面意思输入。例如,<C-R>
是五个字符的序列<
C
-
R
>
。输入时不能用 Ctrl-R 替换它们。
看
:help :split_f
:help c_CTRL-R
:help registers