В виме можно в одном окне открыть несколько файлов на разные табы. Делается это просто:
:tabe [FILENAME]
Переключение между табами - gt и gT. Рекомендую назначить эти команды на стрелочки влево и вправо (в обычном режиме вы ведь используете h/l, не так ли?):
:map <LEFT> gT
:map <RIGHT> gT
Итак, у вас проект с несколькими модулями, вы их все открыли и успешно работаете. При каждом заходе в проект не хочется по новому открывать все файлы. Чтобы сохранить текущую конфигурацию достаточно выполнить команду
:mksession MySession.vim
Тогда, чтобы потом снова открыть вкладки достаточно запустить вим так
gvim -S MySession.vim
Для выполнения одной и той же команды на всех табах используется команда :tabdo, К примеру, сохранить открытые файлы
:tabdo w
закрыть все табы
:tabdo q
И кстати, не забудьте про :help tabpage.
Добро пожаловать!
На текущий момент в блоге затронуты следующие темы: vim, free pascal, lisp, forth, m4
Занимаюсь разработкой своего языка под названием DEmbro, подбробней: wiki и svn
Для постов, не связанных с программированием, у меня есть отдельное жж.
марта 29, 2009
Вкладки
марта 14, 2009
Запаковка битов в free pascal.
Иногда, например при работе с файлами или написании низкоуровнего сетевого когда, может потребоваться работа с битами. Она без проблем реализуется с помощью побитовых операторов (and, not, shl, or), но хотелось бы более изящного решения.
По умолчанию конструкция вида
TBits = packed record
Carry: Boolean;
Signed: Boolean;
Zero: Boolean;
end;
займет 3 байта. А если сверху прописать опцию
{$BITPACKING ON}
то эта запись будет занимать один байт, а работа с ней не будет отличаться от работы с обычной записью:
B: TBits;
...
B.Zero := True;
B.Signed := False;
К сожалению, fpc не поддерживает запаковку динамических массивов. Только константных, поэтому для реализации потока битов придется писать что-то типа
Type
TBits8 = packed array[0..7] Of Boolean;
Var
I: Integer;
N: Integer; // размер
Bits: Array Of TBits8; // поток битов
...
N := 129; // хотим 129 бит
SetLength(Bits, (N + 7) shr 3);
for I := 0 to N - 1 do
Bits[I shr 3][I and 7] := False; // бит с номером I устанавливаем в 0
Читать дальше......
марта 04, 2009
Как избавиться от гламурного розового окошка
Многих раздражает розовый цвет окошка автодополнения (то самое, которое по Ctrl-n вызывается). Самый простой способ это исправить - прописать в _vimrc такие строки:
function KillPink()
hi Pmenu guibg=#2e3436 guifg=#eeeeec
hi PmenuSel guibg=#8c8c8c guifg=#8c2426
hi PmenuSbar guibg=#555753
hi PmenuThumb guifg=#ffffff
endfunction
call KillPink()
Цвета можно переписать под собственный вкус. Если вы сменяете цветовую схему, то эта настройка будет сбита. Тогда нужно будет выполнить команду
:call KillPink()
По умолчанию для автодополнения вим ищет слова только в текущем буфере. Часто этого недостаточно. Хотелось бы заранее обладать каким-то базовым комплектом слов (типа implementation).
Для этого создаем какой-нибудь файл, к примеру, C:\PascalKeywords.vim и в нем прописываем все необходимые слова:
interface
implementation
initialization
finalization
inherited
davidblain
И добавляем в _vimrc такую строчку:
set cpt=.,w,b,u,t,i,kC:\PascalKeywords.vim
Так же можно добавить и другие необходимые файлы, просто приписав ",k[Путь к файлу]".
Полный список зарегестрированных слов можно найти тут.
Читать дальше......