Как вы используете K-кнопку в обычном режиме VIM? - PullRequest
9 голосов
/ 09 мая 2009

K используется для открытия руководств. Мне интересно, как вы используете это. Можете ли вы использовать его для всех видов руководств, таких как C, Java и другие вещи?

Ответы [ 3 ]

12 голосов
/ 09 мая 2009

Проще говоря, K запускает команду, указанную опцией 'keywordprg' для «слова» под курсором (где «слово» - это непрерывный блок букв, цифр и любых других символов, указанных в «iskeyword») опция).

В системах на основе Unix для ключевого слова keywordprg по умолчанию используется значение man, поэтому все, для чего команда man возвращает полезное руководство, можно найти с помощью K в этой настройке по умолчанию. Большинство систем Unix имеют справочные страницы для библиотек C, так что вы можете довольно легко искать функции библиотеки C.

Однако в большинстве систем нет справочных страниц по Java, поэтому для поиска документации по Java вам необходимо либо установить справочные страницы для Java, либо изменить настройку «keywordprg» для вызова программы (кроме «man») это покажет документацию Java.

Вот скрипт Python, который вы можете использовать:

#!/usr/bin/python

import urllib, os, sys, commands

os.system('firefox' + commands.mkarg(
  'http://www.google.com/search?q='
  + urllib.quote_plus(' '.join(sys.argv[1:]))
  + '+site%3Ajava.sun.com+inurl%3Ajavase%2F6%2Fdocs%2Fapi&btnI=')
  + ' &')

Сохраните это как javaman.py, chmod +x javaman.py, поместите его на свой путь и затем в vim:

:setlocal keywordprg=javaman.py

Затем нажатие K вызовет javaman.py, который, в свою очередь, выполнит поиск «Мне повезет» в Google для поиска соответствующих документов по Java API.

В не-Unix системах вам может понадобиться включить python в команду:

:let &keywordprg='python javaman.py'

Возможно, вам также понадобится изменить скрипт (например, в настоящее время он использует «&» для фонового Firefox, который является Unix-измом).

6 голосов
/ 09 мая 2009

:help K может дать вам больше объяснений, чем кто-либо другой может

2 голосов
/ 09 мая 2009

Да. Вам необходимо обновить переменную keywordprg, чтобы она указала на программу, которая может искать ключевое слово на выбранном вами языке. В общем, вы можете Google для конкретных языков и решений. Вот пара из них

...