for Crazy (.vimrc) @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 11 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 28 Декабрь 2002, 17:06:00 
Интернет у меня очень дохлый сейчас, длинный топик невозможно подгрузить [img]images/smiles/icon_sad.gif[/img]

Хочу
- поставив курсор на вызов функции, определенной в том же или другом файле, перейти к ее описанию;
- переключаться между буферами по <F*>;
И еще вот какой глюк: скачал макрос, который переключает кодировки по <F8>, в виме работает, а в гвиме не хочет... точнее первый раз выдает кучу ерроров, а потом чего-то переключает, но вин-1251 не хочет. Только в природе этого глюка я еще не разобрался: может вгим, а может Хсервер или оконный менеджер... Вобщем переключать кодировки по горячей клавише тоже хочется [img]images/smiles/icon_smile.gif[/img]

Email: gobeer@crazy.ru [img]images/smiles/icon_biggrin.gif[/img]
[img]beer.gif[/img]
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 28 Декабрь 2002, 17:18:00 
Насчет питона: он в моем гвиме (из дистрибутива ASP Linux 7.2) в списке поддерживаемых подсветок присутствует [img]images/smiles/icon_cool.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 29 Декабрь 2002, 03:39:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения GoBeer:
<STRONG>- поставив курсор на вызов функции, определенной в том же или другом файле, перейти к ее описанию;</STRONG><HR></BLOCKQUOTE>

Штатная фича. Нужен ctags (он почему-то не входит в комплект или я что-то упустил). Используй ":help tags" -- команд там немало. [img]images/smiles/icon_smile.gif[/img]
BTW, часто приходится помогать ctags разобраться, на каком языке исходник. Пример:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
ctags --language-force=PHP *.inc
</pre><HR></BLOCKQUOTE>

Стоит также посмотреть на скрипт tagexplorer -- открывается окно, где для каждого файла из каталога можно вывести список функций, классов и т.п. -- то, что нашел ctags.

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote
Цитата:
<STRONG>- переключаться между буферами по <F*>;</STRONG>



Для переключения по F6/^F6 (туда/обратно):

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
map <F6> <C-W>w
map <C-F6> <C-W>W
imap <F6> <ESC><C-W>wa
imap <C-F6> <ESC><C-W>Wa
</pre><HR></BLOCKQUOTE>

Чисто теоретически можно определить маппинг для vmap и omap, но практической пользы я здесь не вижу. Разве что сделать так:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
vmap <F6> y<C-W>w
vmap <C-F6> y<C-W>W
</pre><HR></BLOCKQUOTE>

Но это уже больше извращение, чем полезная фича. [img]images/smiles/icon_smile.gif[/img] Для omap даже извращения в голову не приходят...

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote
Цитата:
<STRONG>И еще вот какой глюк: скачал макрос, который переключает кодировки по <F8>, в виме работает, а в гвиме не хочет... точнее первый раз выдает кучу ерроров, а потом чего-то переключает, но вин-1251 не хочет.</STRONG>



Нужно того... На макрос посмотреть. [img]images/smiles/icon_smile.gif[/img]

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote
Цитата:
<STRONG>Только в природе этого глюка я еще не разобрался: может вгим, а может Хсервер или оконный менеджер... Вобщем переключать кодировки по горячей клавише тоже хочется [img]images/smiles/icon_smile.gif[/img]</STRONG>



Открою страшную тайну: я работаю с vim только в win32 или в юниксах через telnet/ssh. В X-Window ни разу не приходилось, ибо во времена работы в этой среде я пользовал emacs. [img]images/smiles/icon_smile.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 29 Декабрь 2002, 03:42:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
:python print 1
</pre><HR></BLOCKQUOTE>

У меня печатает "1". В бинарниках с vim.org -- ругается, что фича не реализована.

[ 29 Декабря 2002: Исправлено Crazy ]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 29 Декабрь 2002, 06:03:00 
В качестве примера забавного маппинга для PHP:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
map ;e A"<ESC>:s/\(["$]\)/\\\1/g<C-V>
:s/^\(\s*\)\(\S.*\)$/\1echo "\2;/g<C-V>
:s/\\";$/";/g<C-V>

imap ;e <ESC>;eA


map ;E A"$x<ESC>:s/\("\)/\\"/g<C-V>
:s/$\(\w\+\)/".htmlspecialchars($\1)."/g<C-V>
:s/^\(\s*\)\(\S.*\)$/\1echo "\2;/g<C-V>
:s/\\"".htmlspecialchars($x).";$/";/g<C-V>
:s/."";$/;/g<C-V>

imap ;E <ESC>;EA
</pre><HR></BLOCKQUOTE>

Здесь вместо <C-V> должен стоять настоящий Control+V.

Макрос ;e превращает текущую строку в оператор echo с правильно отквоченными кавычками и знаками доллара.

Макрос ;E работает аналогично, но вместо квотинга "$" он подставляет в нужное место вызов htmlspecialchars, где параметром указано имя переменной.

Следующий макрос заменяет в тексте $Имя на "<?php echo htmlspecialchars($Имя); ?>" и, в отличие от предыдущих двух, работает как с текущей строкой, так и с выделенным блоком.

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
map ;= :s/$\(\w\+\)/<?php echo htmlspecialchars($\1); ?>/g<C-V>

imap ;= <ESC>;=A
</pre><HR></BLOCKQUOTE>

И такого добра -- порядком. Если есть интерес -- могу потихоньку куда-нибудь выкладывать...
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 29 Декабрь 2002, 13:37:00 
А есть ли в рунете тематический сайт посвященный виму? Если нет , может тебе стоит над этим подумать? Похоже, твоих знаний и опыта работы хватит с головой [img]images/smiles/icon_wink.gif[/img] Подозреваю, что аудитория дефорума не сильно интересуется подопытным редактором [img]images/smiles/icon_rolleyes.gif[/img]

Насчет переключения кодировок - вот мой вимрц:
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
set encoding=koi8-r
set termencoding=koi8-r
set tabstop=4
set wrap!
set ai

map <F8> :execute RotateEnc()<CR>

" some funcs

let b:encindex=0
function! RotateEnc()
let y = -1
while y == -1
let encstring = "#8bit-cp1251#8bit-cp866#utf-8#koi8-r#"
let x = match(encstring,"#",b:encindex)
let y = match(encstring,"#",x+1)
let b:encindex = x+1
if y == -1
let b:encindex = 0
else
let str = strpart(encstring,x+1,y-x-1)
return ":set encoding=".str
endif
endwhile
endfunction
</pre><HR></BLOCKQUOTE>
Насчет питона: незнаю что это за команда
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code
Цитата:
<pre> [img]images/smiles/icon_razz.gif[/img]ython print 1</pre>


но у меня печатает единицу и вим и гвим [img]images/smiles/icon_smile.gif[/img]

А вот забавный маппинг меня пока не впечатлил... последнее время пришлось почитать доки по взлому и, оглянувшись на строки сделанного ранее кода, я получил к новому году параноию, и врядли доверю макросу такое ответственное задание как вставка htmlspecialchars() [img]spy.gif[/img]

- Что такое маппинг (в случае с буферами)???
- Хочется еще подсвечивать соответствующие операторные скобки
[img]beer.gif[/img]
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 29 Декабрь 2002, 13:45:00 
Интересно, что случилось с питоном? [img]insane.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 29 Декабрь 2002, 15:11:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения GoBeer:
<STRONG>А есть ли в рунете тематический сайт посвященный виму? Если нет , может тебе стоит над этим подумать?</STRONG><HR></BLOCKQUOTE>

Если время будет -- почему бы и нет. Наброски у меня уже года четыре тухнут... [img]images/smiles/icon_smile.gif[/img]

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG>
:set encoding=".str
</STRONG><HR></BLOCKQUOTE>

Насколько я знаю виндовую версию, для gvim "set encoding" есть разница между однобайтовыми кодировками и utf-8. Но сами однобайовые кодировки оно не различает.

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote
Цитата:
<STRONG>но у меня печатает единицу и вим и гвим [img]images/smiles/icon_smile.gif[/img]</STRONG>



Значит, твоя версия тоже поддерживает написание скриптов на python'е.


<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote
Цитата:
<STRONG>- Что такое маппинг (в случае с буферами)???</STRONG>



Вопрос не понял.

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG>- Хочется еще подсвечивать соответствующие операторные скобки
[img]beer.gif[/img]</STRONG><HR></BLOCKQUOTE>

Оно штатно есть при вводе. Есть макрос для ввода парных скобок с приятной фичей для выхода за внешнюю скобку по кнопке. Есть команда для поиска парной скобки. Что именно тебя интересует?
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 3 Январь 2003, 18:04:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
map <F6> <C-W>w
map <C-F6> <C-W>W
imap <F6> <ESC><C-W>wa
imap <C-F6> <ESC><C-W>Wa
</pre><HR></BLOCKQUOTE>
- не работает! (делал copy/paste из браузера).

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>
Чисто теоретически можно определить маппинг для vmap и omap, но практической пользы я здесь не вижу. Разве что сделать так...
<HR></BLOCKQUOTE>
что за маппинг?

Хочется поставив курсор на открывающую скобку увидеть соответствующую закрывающую, например, другим цветом. И, кстати, что там за команда поиска парной скобки?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 3 Январь 2003, 22:08:00 
Для перехода на парную скобку служит кнопка "%". См. также такие забавные вещи, как "[(", "[". Кроме того, см. параметры showmatch и matchtime.

Относительно "не работает": попробуй следующий код (извлеки из UUE):

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
section 1 of 1 of file rc.txt < uuencode 5.32 by R.E.M. >

begin 644 rc.txt
M;6%P(#Q&-CX@/$,M5SYW#0IM87`@/$,M1C8^(#Q#+5<^5PT*:6UA<"`\1C8^
M(#Q%4T,^/$,M5SYW80T*:6UA<"`\0RU&-CX@/$530SX\0RU7/E=A#0IV;6%P
D(#Q&-CX@>3Q#+5<^=PT*=FUA<"`\0RU&-CX@>3Q#+5<^5PT*
`
end
sum -r/size 37342/197 section (from "begin" to "end")
sum -r/size 23399/126 entire input file
</pre><HR></BLOCKQUOTE>

Будем надеяться, что форум не изуродует код.
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: for Crazy (.vimrc)
Сообщение Добавлено: 4 Январь 2003, 10:15:00 
А что такое UUE?
Вообще я решил проблему переключения путем добавления в .vimrc такой строки:
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
map <F6> :bn<CR>
</pre><HR></BLOCKQUOTE>
- работает [img]images/smiles/icon_smile.gif[/img]
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 11 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100