Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.223.33] |
|
Сообщ.
#1
,
|
|
|
Вотс возникло несколько вопросов по Gvim:
1. Есть в vim такая замечательная вещь как "ab", что есть аббревиатура. Хочется сделать такое (упрощённо): ab \year\ ТЕКУЩИЙ ГОД (например 2006) Есть в vim функция strftime, но такакя проблема, что, например :echo strftime("%Y") выводит текущий год в cmdline редактора, а требуется чтобы вывод был прямо в текст. Что делать? 2. Как проверить, что редактируется именно С++ (Perl, Java - не суть важно) файл? Т.е., допустим: if has("syntax_cpp") ab ... elseif has("syntax_java") ab ... elseif has("syntax_sql") ab ... else ab ... endif Вот пока такие вопросы. |
Сообщ.
#2
,
|
|
|
Цитата 1. Есть в vim такая замечательная вещь как "ab", что есть аббревиатура. Хочется сделать такое (упрощённо): Тебе нужно назначить аббревиатуру: :iabbrev аббревиатура чего_желаешь В этом случае, при вводе аббревиатуры, будет введено желаемое. Цитата Есть в vim функция strftime, но такакя проблема, что, например :echo strftime("%Y") выводит текущий год в cmdline редактора, а требуется чтобы вывод был прямо в текст. Что делать? Посмотри help по семейству команд ec[ho] -- там есть разные варианты. Цитата 2. Как проверить, что редактируется именно С++ (Perl, Java - не суть важно) файл? Т.е., допустим: В принципе, можно по расширению файла. Т.е., если файл с суффиксом .с, то это С? В этом случае посмотри на try/catch/finally/endtry. Всё это ты можешь найти в файле справки eval.txt. Добавлено Кстати, аббревиатуры ты можешь прописать в *rc. |
Сообщ.
#3
,
|
|
|
Цитата Тебе нужно назначить аббревиатуру: :iabbrev аббревиатура чего_желаешь В этом случае, при вводе аббревиатуры, будет введено желаемое. Не, я знаю как сделать аббревиатуру. Но я не знаю, как заставить вывод strftime("%Y") вставляться в текст. Т.е. если я пишу \year\ , значит я хочу вставить текущий год. Да можно записать так: ab \year\ 2006. Но! Хочется, чтобы год определялся автоматически. Т.е. брался из вывода strftime("%Y"). echo и его варианты, насколько я понял, мне не помошники. Цитата В принципе, можно по расширению файла. Т.е., если файл с суффиксом .с, то это С? В этом случае посмотри на try/catch/finally/endtry. Ну у меня есть подозрение что это можно сделать проще. За eval.txt спасибо. |
Сообщ.
#4
,
|
|
|
Цитата Ну у меня есть подозрение что это можно сделать проще. Можно. Просто, это было первое, что взбрело мне в голову... :D:D:D Цитата Т.е. брался из вывода strftime("%Y"). echo и его варианты, насколько я понял, мне не помошники. А если :!echo ? |
Сообщ.
#5
,
|
|
|
Цитата А если :!echo ? Ок. Пишу :!echo strftime("%Y") - не работает. Он вместо % вставляет имя текущего файла. Да и, как мне кажется, не для того это и сделано... |
Сообщ.
#6
,
|
|
|
Цитата Да и, как мне кажется, не для того это и сделано... Вообще говоря, для вывода результатов в буфер редактирования. Вообще, не знаю, видел ты или нет, но посмотри ещё здесь -> Vi, Vim, gvim,... |
Сообщ.
#7
,
|
|
|
Ну вот мой файл. Примитивно конечно, но пока хватало.
Цитата let g:user_name = "<AUTHOR>" let g:user_mail = "EM@IL" set ignorecase set incsearch set nowrap set expandtab set shiftwidth=4 set softtabstop=4 if has("cindent") set cindent endif if !exists("syntax_on") syntax on endif set number let g:is_line_numbers_show = "yes" function SwitchLineNumbersShowMode() if g:is_line_numbers_show == "yes" set nonumber let g:is_line_numbers_show = "no" else set number let g:is_line_numbers_show = "yes" endif endfunction map <A-v><A-l> :call SwitchLineNumbersShowMode()<CR> imap <A-v><A-l> <Esc>:call SwitchLineNumbersShowMode()<CR>a if has("gui_running") if has("toolbar") set guioptions-=T let g:is_toolbar_show = "no" function SwitchToolbarShowMode() if g:is_toolbar_show == "yes" set guioptions-=T let g:is_toolbar_show = "no" else set guioptions+=T let g:is_toolbar_show = "yes" endif endfunction map <A-v><A-t> :call SwitchToolbarShowMode()<CR> imap <A-v><A-t> <Esc>:call SwitchToolbarShowMode()<CR>a endif if has("scrollbind") set guioptions+=b let g:is_bottom_srollbar_show = "yes" endif if has("menu") if &guioptions !~# "M" let g:is_menu_show = "yes" else let g:is_menu_show = "no" endif function SwitchMenuShowMode() if g:is_menu_show == "yes" set guioptions-=m let g:is_menu_show = "no" else set guioptions+=m let g:is_menu_show = "yes" endif endfunction map <A-v><A-m> :call SwitchMenuShowMode()<CR> imap <A-v><A-m> <Esc>:call SwitchMenuShowMode()<CR>a endif endif if has("gui_running") if has("gui_gtk2") set guifont=Consolas\ 10.5 elseif has("x11") || has("gui_gtk") set guifont=Terminus\ 10 elseif has("gui_win32") set guifont=Courier\ New\ 10 endif endif "set history=1000 "filetype plugin on "filetype indent on highlight Normal guibg=gray97 set wildmenu set wcm=<TAB> if has("gui_running") && version >= 700 map <A-t><A-1> 1gt imap <A-t><A-1> <Esc>1gti map <A-t><A-2> 2gt imap <A-t><A-2> <Esc>2gti map <A-t><A-3> 3gt imap <A-t><A-3> <Esc>3gti map <A-t><A-4> 4gt imap <A-t><A-4> <Esc>4gti map <A-t><A-5> 5gt imap <A-t><A-5> <Esc>5gti map <A-t><A-6> 6gt imap <A-t><A-6> <Esc>6gti map <A-t><A-7> 7gt imap <A-t><A-7> <Esc>7gti map <A-t><A-8> 8gt imap <A-t><A-8> <Esc>8gti map <A-t><A-9> 9gt imap <A-t><A-9> <Esc>9gti map <A-t><A-0> 10gt imap <A-t><A-0> <Esc>10gti map <A-t><A-n> :tabnew<CR> imap <A-t><A-n> <Esc>:tabnew<CR>i endif map <A-f><A-c> :x<CR> imap <A-f><A-c> <Esc>:x<CR>i map <A-f><A-q> :q!<CR> imap <A-f><A-q> <Esc>:q!<CR> map <A-e><A-x> "+x imap <A-e><A-x> <Esc>"+xi map <A-e><A-c> "+y imap <A-e><A-c> <Esc>"+yi map <A-e><A-v> "+gp imap <A-e><A-v> <Esc>"+gpi map <A-e><A-V> "+gP imap <A-e><A-V> <Esc>"+gPi map <A-f><A-s> :w<CR> imap <A-f><A-s> <Esc>:w<CR>a map <A-f><A-S> :w <TAB> imap <A-f><A-S> <Esc>:w <TAB> map <A-f><A-o> :e <TAB> imap <A-f><A-o> <Esc>:e <TAB> map <A-f><A-O> :e! <TAB> imap <A-f><A-O> <Esc>:e! <TAB> if has("spell") set spellfile=~/.vim/spell/ru.utf-8.add if has("menu") && has("gui_running") && &guioptions !~# "M" menu Дополнительно.Орфография.Русский :setlocal spell spelllang=ru<CR> imenu Дополнительно.Орфография.Русский <Esc>:setlocal spell spelllang=ru<CR>a menu Дополнительно.Орфография.Английский :setlocal spell spelllang=en<CR> imenu Дополнительно.Орфография.Английский <Esc>:setlocal spell spelllang=en<CR>a menu Дополнительно.Орфография.Русский-Английский :setlocal spell spelllang=en,ru<CR> imenu Дополнительно.Орфография.Русский-Английский <Esc>:setlocal spell spelllang=en,ru<CR>a menu Дополнительно.Орфография.Выключено :setlocal spell spelllang=<CR> imenu Дополнительно.Орфография.Выключено <Esc>:setlocal spell spelllang=<CR>a map <A-f><A-l> :emenu Дополнительно.Орфография.<Tab> imap <A-f><A-l> <Esc>:emenu Дополнительно.Орфография.<Tab> endif map <A-f><A-l><A-r> :setlocal spell spelllang=ru<CR> imap <A-f><A-l><A-r> <Esc>:setlocal spell spelllang=ru<CR>a map <A-f><A-l><A-e> :setlocal spell spelllang=en<CR> imap <A-f><A-l><A-e> <Esc>:setlocal spell spelllang=en<CR>a map <A-f><A-l><A-a> :setlocal spell spelllang=en,ru<CR> imap <A-f><A-l><A-a> <Esc>:setlocal spell spelllang=en,ru<CR>a map <A-f><A-l><A-o> :setlocal spell spelllang=<CR> imap <A-f><A-l><A-o> <Esc>:setlocal spell spelllang=<CR>a endif if has("menu") && has("gui_running") && &guioptions !~# "M" menu Дополнительно.Кодировка.UTF-8 :e ++enc=utf-8<CR> imenu Дополнительно.Кодировка.UTF-8 <Esc>:e ++enc=utf-8<CR>a menu Дополнительно.Кодировка.KOI8-R :e ++enc=koi8-r<CR> imenu Дополнительно.Кодировка.KOI8-R <Esc>:e ++enc=koi8-r<CR>a menu Дополнительно.Кодировка.CP1251 :e ++enc=cp1251<CR> imenu Дополнительно.Кодировка.CP1251 <Esc>:e ++enc=cp1251<CR>a menu Дополнительно.Кодировка.IBM866 :e ++enc=ibm866<CR> imenu Дополнительно.Кодировка.IBM866 <Esc>:e ++enc=ibm866<CR>a map <A-f><A-e> :emenu Дополнительно.Кодировка.<Tab> imap <A-f><A-e> <Esc>:emenu Дополнительно.Кодировка.<Tab> endif map <A-f><A-e><A-u> :e ++enc=utf-8<CR> imap <A-f><A-e><A-u> <Esc>:e ++enc=utf-8<CR>a map <A-f><A-e><A-k> :e ++enc=koi8-r<CR> imap <A-f><A-e><A-k> <Esc>:e ++enc=koi8-r<CR>a map <A-f><A-e><A-c> :e ++enc=cp1251<CR> imap <A-f><A-e><A-c> <Esc>:e ++enc=cp1251<CR>a map <A-f><A-e><A-i> :e ++enc=ibm866<CR> imap <A-f><A-e><A-i> <Esc>:e ++enc=ibm866<CR>a if has("menu") && has("gui_running") && &guioptions !~# "M" menu Дополнительно.Тип\ файла.С++ :set filetype=cpp<CR> imenu Дополнительно.Тип\ файла.С++ <Esc>:set filetype=cpp<CR>a menu Дополнительно.Тип\ файла.Sql :set filetype=sql<CR> imenu Дополнительно.Тип\ файла.Sql <Esc>:set filetype=sql<CR>a menu Дополнительно.Тип\ файла.Xml :set filetype=xml<CR> imenu Дополнительно.Тип\ файла.Xml <Esc>:set filetype=xml<CR>a menu Дополнительно.Тип\ файла.Java :set filetype=java<CR> imenu Дополнительно.Тип\ файла.Java <Esc>:set filetype=java<CR>a menu Дополнительно.Тип\ файла.Matlab :set filetype=matlab<CR> imenu Дополнительно.Тип\ файла.Matlab <Esc>:set filetype=matlab<CR>a menu Дополнительно.Тип\ файла.Pascal :set filetype=pascal<CR> imenu Дополнительно.Тип\ файла.Pascal <Esc>:set filetype=pascal<CR>a map <A-f><A-t> :emenu Дополнительно.Тип\ файла.<Tab> imap <A-f><A-t> <Esc>:emenu Дополнительно.Тип\ файла.<Tab> endif map <A-f><A-t><A-c> :set filetype=cpp<CR> imap <A-f><A-t><A-c> <Esc>:set filetype=cpp<CR>a map <A-f><A-t><A-s> :set filetype=sql<CR> imap <A-f><A-t><A-s> <Esc>:set filetype=sql<CR>a map <A-f><A-t><A-x> :set filetype=xml<CR> imap <A-f><A-t><A-x> <Esc>:set filetype=xml<CR>a map <A-f><A-t><A-j> :set filetype=java<CR> imap <A-f><A-t><A-j> <Esc>:set filetype=java<CR>a map <A-f><A-t><A-m> :set filetype=matlab<CR> imap <A-f><A-t><A-m> <Esc>:set filetype=matlab<CR>a map <A-f><A-t><A-p> :set filetype=pascal<CR> imap <A-f><A-t><A-p> <Esc>:set filetype=pascal<CR>a map <A-e><A-g> <C-]> set pastetoggle=<F2> map <A-w><A-n> <C-W>n imap <A-w><A-n> <Esc><C-W>na map <A-w><A-s> <C-W>s imap <A-w><A-s> <Esc><C-W>sa map <A-w><A-v> <C-W>v imap <A-w><A-v> <Esc><C-W>va map <A-w><A-c> <C-W>c imap <A-w><A-c> <Esc><C-W>ca map <A-w><A-o> <C-W>o imap <A-w><A-o> <Esc><C-W>oa map <A-w><A-Up> <C-W>k imap <A-w><A-Up> <Esc><C-W>ka map <A-w><A-Down> <C-W>j imap <A-w><A-Down> <Esc><C-W>ja map <A-w><A-Left> <C-W>h imap <A-w><A-Left> <Esc><C-W>ha map <A-w><A-Right> <C-W>l imap <A-w><A-Right> <Esc><C-W>la map <A-w><A-PageUp> <C-W>k<C-W>_ imap <A-w><A-PageUp> <Esc><C-W>k<C-W>_a map <A-w><A-PageDown> <C-W>j<C-W>_ imap <A-w><A-PageDown> <Esc><C-W>j<C-W>_a map <A-w><A-d><A-Up> <C-W>K imap <A-w><A-d><A-Up> <Esc><C-W>Ka map <A-w><A-d><A-Down> <C-W>J imap <A-w><A-d><A-Down> <Esc>Ja map <A-w><A-d><A-Left> <C-W>H imap <A-w><A-d><A-Left> <Esc><C-W>Ha map <A-w><A-d><A-Right> <C-W>L imap <A-w><A-d><A-Right> <C-W>La map <A-w><A-d><A-PageUp> <C-W>R imap <A-w><A-d><A-PageUp> <Esc><C-W>Ra map <A-w><A-d><A-PageDown> <C-W>r imap <A-w><A-d><A-PageDown> <Esc><C-W>ra map <A-w><A-=> <C-W>= imap <A-w><A-=> <Esc><C-W>=a map <A-w><A-e><A-+> <C-W>_ imap <A-w><A-e><A-+> <Esc><C-W>_a map <A-w><A-e><A--> <C-W>1_ imap <A-w><A-e><A--> <Esc><C-W>1_a ab //\ //////////////////////////////////////////////////////////////////////////////// ab ///\ //////////////////////////////////////////////////////////////////////////////// ab /*\ /******************************************************************************* ab /**\ /******************************************************************************* ab */\ *******************************************************************************/ ab #i\ #include ab #d\ #define ab #e\ #error ab \d\ defined function AppendCurrentLine(text) call setline(".", getline(".") . a:text) endfunction ab @a\ @author<Tab><Esc>:call AppendCurrentLine(g:user_name)<CR><End>a<Tab><Esc>:call AppendCurrentLine("<" . g:user_mail . ">")<CR><End>a ab @b\ @brief ab @c\ @class ab @d\ @date<Tab><Esc>:call AppendCurrentLine(strftime("%Y/%m/%d"))<CR><End>a ab @e\ @enum ab @f\ @file ab @h\ @htmlonly ab @i\ @interface ab @l\ @link ab @m\ @mainpage ab @n\ @namespace ab @o\ @overload ab @p\ @param ab @r\ @return ab @s\ @struct ab @t\ @typedef ab @u\ @union ab @v\ @var ab @w\ @warning ab @h\ @htmlonly ab @x\ @xmlonly ab @ai\ @addindex ab @ag\ @addgroup ab @an\ @anchor ab @ar\ @arg ab @at\ @attention ab @au\ @author ab @br\ @brief ab @bg\ @bug ab @cg\ @callgraph ab @ct\ @category ab @cl\ @class ab @co\ @code ab @cn\ @cond ab @cd\ @copydoc ab @dt\ @date ab @df\ @def ab @dg\ @defgroup ab @dp\ @deprecated ab @dr\ @dir ab @di\ @dontinclude ab @do\ @dot ab @df\ @dotfile ab @el\ @else ab @ei\ @elseif ab @ec\ @endcode ab @eo\ @endcond ab @ed\ @enddot ab @eho\ @endhtmlonly ab @ef\ @endif ab @elo\ @endlatexonly ab @el\ @endlink ab @emo\ @endmanonly ab @ev\ @endverbatim ab @exo\ @endxmlonly ab @en\ @enum ab @ex\ @example ab @exp\ @exception ab @hz\ @hideinitializer ab @hi\ @htmlinclude ab @ho\ @htmlonly ab @fl\ @file ab @ifn\ @ifnot ab @im\ @image ab @in\ @include ab @il\ @includelineno ab @ig\ @ingroup ab @it\ @internal ab @iv\ @invatiant ab @if\ @interface ab @lo\ @latexonly ab @ln\ @line ab @lk\ @link ab @mp\ @mainpage ab @mo\ @manonly ab @nm\ @name ab @ns\ @namespace ab @ng\ @nosubgrouping ab @nt\ @note ab @ol\ @overload ab @pk\ @package ab @pg\ @page ab @pa\ @par ab @ph\ @paragraph ab @pm\ @param ab @ps\ @post ab @pr\ @pre ab @pp\ @property ab @pt\ @protocol ab @rf\ @ref ab @rl\ @relates ab @rla\ @relatesalso ab @rm\ @remarks ab @rt\ @return ab @rv\ @retval ab @sc\ @section ab @se\ @see ab @si\ @showinitializer ab @sn\ @since ab @sk\ @skip ab @sl\ @skipline ab @st\ @struct ab @sp\ @subpage ab @ss\ @subsection ab @sss\ @subsubsection ab @ts\ @test ab @th\ @throw ab @to\ @todo ab @td\ @typedef ab @un\ @union ab @ut\ @until ab @vr\ @var ab @vb\ @verbatim ab @vi\ @verbinclude ab @ve\ @version ab @wa\ @warning ab @wg\ @weakgroup ab @xo\ @xmlonly ab @xr\ @xrefitem ab \bsd\ <CR>Copyright © <Esc>:call AppendCurrentLine(strftime("%Y") . ", " . g:user_name)<CR><End>a<CR>All rights reserved.<CR><CR>Redistribution and use in source and binary forms, with or without<CR>modification, are permitted provided that the following conditions<CR>are met:<CR><CR> 1. Redistributions of source code must retain the above copyright<CR><Left> notice, this list of conditions and the following disclaimer.<CR><Left><Left><Left><Left> 2. Redistributions in binary form must reproduce the above<CR><Left> copyright notice, this list of conditions and the following<CR>disclaimer in the documentation and/or other materials provided<CR>with the distribution.<CR><Left><Left><Left><Left> 3. Neither the name of the <NAME> nor the names of its contributors<CR><Left> may be used to endorse or promote products derived from this<CR>software without specific prior written permission.<CR><Left><Left><Left><Left><CR>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<CR>"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<CR>LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR<CR>A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT<CR>OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<CR>SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<CR>LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<CR>DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<CR>THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT<CR>(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE<CR>OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<CR><CR>$Id$ ab \gpl\ <CR>Copyright © <Esc>:call AppendCurrentLine(strftime("%Y") . " " . g:user_name)<CR><End>a<CR><CR>This program is free software; you can redistribute it and/or modify<CR>it under the terms of the GNU General Public License as published by<CR>the Free Software Foundation; either version 2 of the License, or<CR>(at your option) any later version.<CR><CR>This program is distributed in the hope that it will be useful, but<CR>WITHOUT ANY WARRANTY; without even the implied warranty of<CR>MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<CR>General Public License for more details.<CR><CR>You should have received a copy of the GNU General Public License<CR>along with this program; if not, write to the Free Software<CR>Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307<CR>USA<CR><CR>$Id$ ab \lgpl\ <CR>Copyright © <Esc>:call AppendCurrentLine(strftime("%Y") . " " . g:user_name)<CR><End>a<CR><CR>This library is free software; you can redistribute it and/or modify<CR>it under the terms of the GNU Lesser General Public License as published<CR>by the Free Software Foundation; either version 2.1 of the License, or<CR>(at your option) any later version.<CR><CR>This library is distributed in the hope that it will be useful,<CR>but WITHOUT ANY WARRANTY; without even the implied warranty of<CR>MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<CR>Lesser General Public License for more details.<CR><CR>You should have received a copy of the GNU Lesser General Public License<CR>along with this library; if not, write to the Free Software Foundation,<CR>Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<CR><CR>$Id$ |
Сообщ.
#8
,
|
|
|
Хе-хе! Не плохо... :D:D:D
|
Сообщ.
#9
,
|
|
|
Кстати, есть такая вешь как DevHelp (было упоминание про него в "Поиске информации...". Так вот он довольно не плохо интегрируется с GVIM. Можно даже поиск по подсвеченному слову организовать.
|
Сообщ.
#10
,
|
|
|
Мда, зря ты мне eval.txt показал... сейчас времени нету, но пока испправил в своём .gvimrc несколько глюков, кое-что сделал по другому... Собственно я его и тут исправил. Если есть какие советы, пожелания - можно высказывать...
Цитата Кстати, есть такая вешь как DevHelp Очень, кстати говоря, полезная вещь. Цитата Так вот он довольно не плохо интегрируется с GVIM. Можно даже поиск по подсвеченному слову организовать. А вот здесь по-подробнее можно? |
Сообщ.
#11
,
|
|
|
Проблему с годом разрешил. Сделал так:
Цитата function AppendCurrentLine(text) call setline(".", getline(".") . a:text) endfunction ab \bsd\ <CR>Copyright © <Esc>:call AppendCurrentLine(strftime("%Y") . ", " . g:user_name)<CR><End>a<CR>All rights reserved... |
Сообщ.
#12
,
|
|
|
Эхх... Вот такой ещё вопрос - есть ли для vim плагин, который делает автозакрытие скобок? Причём не просто тупо ставит закрывающую, а реализует поведение примерно как в eclipse/idea?
|
Сообщ.
#13
,
|
|
|
Цитата Вот такой ещё вопрос - есть ли для vim плагин, который делает автозакрытие скобок? Честно говоря, не интересовался -- мне без надобности. Я сразу ставлю две скобки. :D:D:D Цитата А вот здесь по-подробнее можно? Можно. В дереве исходных кодов поройся -- немало интересного найдёшь. Как пример -- интеграция с GVIM. Там мапится (amap) сочетание клавиш и вызывается DevHelp. Причём, в качестве аргумента вызова передаётся слово под курсором. Таким образом, при вызове DevHelp, ему под нос суётся то, что ты хочешь отискать. Ещё фишка -- там же (в дереве сырцов) ты можешь найти "конвертер" из некоторого множества HTML-файлов в DevHelp. Правда, срабатывает не всегда -- потом приходится иной раз либо руками, либо скриптецом подчищать за ним. Как пример -- не любит ссылки внутри документа типа адрес_ссылки#где-то_в_документе. Бывают ситуации, когда #где-то_в_документе -- отдельным документом считается... Собственно, доки по PalmOS я так под DevHelp и засунул. |