1

При редактировании файлов 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 (расширение известно) в другом буфере и переместить курсор к процедуре1.

Я знаю, что есть ctags, но не все системы, на которых я работаю, имеют такую возможность.

1 ответ1

2
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .