LINUX.ORG.RU

[VIM] При переключении буферов отключается подсветка


0

1

Заметил такую странность. Если установить подсветку вручную с помощью `:set filetype=<filetype>` а затем переключиться на другой буфер с помощью `:buffer <num>` и снова вернуться к первому файлу посредством :buffer то у нас вырубается подсветка синтаксиса, хотя в строке статуса написан тип файла который мы установили. Лечится это либо повторной установкой типа файла/синтаксиса, либо `:syntax on`. Если тип файла определяется автоматически, то ничего такого не происходит и при смене буферов подсветка сохраняется.

Внимание вопрос: что за фигня?

★★★★★

Как воспроизвести? Что такого в файле, что автоматически тип не распознаётся? Расширение *.cpp в первой строке #!/bin/bash, а внутри код на Паскале?

fractaler ★★★★★ ()
Ответ на: комментарий от fractaler

>Как воспроизвести?

Тип файла 'xdefaults', но не ~/.Xdefaults и не ~/.Xresources. К примеру темы оформления опенбокса, имеют такой синтаксис. В моем случае это файлы подключаемые в Xdefaults с помощью '#include' из поддиректории .Xdefaults.d (я так рулю цветовыми темами терминала). А вообще это может быть любой формат файла (в основном конфигурационного), для которого вим имеет соответствующие файлы подсветки но не может корректно определить их тип.

fat_angel ★★★★★ ()

Модераторы

Может перенесете тему в Development? Там все же больше народу плотно использующего VIM.

fat_angel ★★★★★ ()
Ответ на: комментарий от fractaler

>> Что такого в файле, что автоматически тип не распознаётся?

Да хотя бы файлы sh, которые не содержат #!/bin/sh

GotF ★★★★★ ()

У меня тоже воспроизводится этот косяк. Попробуй использовать модлайны — вполне «прямое» решение.

GotF ★★★★★ ()
Ответ на: комментарий от GotF

>Попробуй использовать модлайны

Пожалуй… Наверное стоит еще добавить несколько автокоманд для определения основных типов файлов (вроде тем опенбокса).

В любом случае спасибо за (пусть и запоздалый) ответ, а то я уж собирался перейти на темную стор^W^WEmacs…

Надо бы еще сообщить об этом баге Брэму, как считаешь?

fat_angel ★★★★★ ()
Ответ на: комментарий от GotF

>Да хотя бы файлы sh, которые не содержат #!/bin/sh
Гм, у меня определяются, если есть расширение *.sh.
Если убрать расширение, то не определяется. Но баг не всплыл. При переключении подсветка сохранилась.

fractaler ★★★★★ ()
Ответ на: комментарий от fat_angel

>А вообще это может быть любой формат файла (в основном конфигурационного), для которого вим имеет соответствующие файлы подсветки но не может корректно определить их тип.
Попробовал. Баг не повторился. Готов выслать любые конфиги. Вообще, у меня довольно простой .vimrc, всё остальное дефолтное из Слаки.

fractaler ★★★★★ ()
Ответ на: комментарий от fractaler

А какая версия VIM'а? У меня такое ощущение, что это в последней версии что то поломали. Раньше я тоже такого не замечал.

P.S. Прошу прощения за столь долгий ответ — меня не было рядом с интернетами.

fat_angel ★★★★★ ()
Ответ на: комментарий от fat_angel

>> У меня такое ощущение, что это в последней версии что то поломали.

Сомневаюсь. У меня же воспроизводится.

gotf ~ % vim --version | head -n2
VIM - Vi IMproved 7.1 (2007 May 12, compiled Oct 18 2008 08:51:49)
Included patches: 1-314
GotF ★★★★★ ()
Ответ на: комментарий от fat_angel

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 28 2010 16:20:33)
Заплатки: 1-3
Скомпилирован <volkerdi@slackware.com>
Огромная версия без графического интерфейса. Включённые (+) и отключённые (-) особенности:
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path
+find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv
+insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
+mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra +perl +persistent_undo +postscript +printer +profile +python
-python3 +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent
-sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
-xterm_clipboard -xterm_save
общесистемный файл vimrc: «$VIM/vimrc»
пользовательский файл vimrc: «$HOME/.vimrc»
пользовательский файл exrc: «$HOME/.exrc»
значение $VIM по умолчанию: «/usr/share/vim»
Параметры компиляции:
gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -D_FORTIFY_SOURCE=1
Сборка: gcc -Wl,-E -L/usr/local/lib -o vim -lncurses -lacl -lgpm -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl5/5.10.1/i486-linux-thread-multi/CORE -lperl -lcrypt -lutil -lc -L/usr/lib/python2.6/config -lpython2.6 -lpthread -lutil -lm -Xlinker -export-dynamic

fractaler ★★★★★ ()

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Sep 28 2010 07:15:55)
Included patches: 1-330
Compiled by buildd@
Huge version without GUI. Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
+menu +mksession +modify_fname +mouse -mouseshape +mouse_dec +mouse_gpm
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte
+multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra -perl +postscript
+printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse
+textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup
-X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save
system vimrc file: «$VIM/vimrc»
user vimrc file: «$HOME/.vimrc»
user exrc file: «$HOME/.exrc»
fall-back for $VIM: «/usr/share/vim»
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wall -g -O2 -I/usr/include/python2.6 -pthread
Linking: gcc -Wl,--as-needed -o vim -lncurses -lselinux -lacl -lgpm -L/usr/lib/python2.6/config -lpython2.6 -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions


Бага не имею.

LamerOk ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.