I want to do some conditional setup and key assignments based upon the
name of the file currently being edited. Here is what I've got so far as
the
*.vimrc* file in the target directory:
so /u/jeff/lib/vi/vimrc.html
so /u/jeff/lib/vi/vimrc.tab4
" =============================================
:if (@% == ".vimrc")
" Alt-F1: Insert contents from hidden file .vim_01
nnoremap <Esc>[29;3~ :read .vim_01<CR>
inoremap <Esc>[29;3~ <ESC>:read .vim_01<CR>
:elseif (@% == "editor.html")
" Alt-F1: Insert contents from hidden file .edit_01
nnoremap <Esc>[29;3~ :read .edit_01<CR>
inoremap <Esc>[29;3~ <ESC>:read .edit_01<CR>
:elseif (@% == "gimp.html")
" Alt-F1: Insert contents from hidden file .gimp_01
nnoremap <Esc>[29;3~ :read .gimp_01<CR>
inoremap <Esc>[29;3~ <ESC>:read .gimp_01<CR>
"
" Alt-F2: Insert contents from hidden file .gimp_02
nnoremap <Esc>[1;3Q :read .gimp_02<CR>
inoremap <Esc>[1;3Q <ESC>:read .gimp_02<CR>
"
" Alt-F3: Insert contents from hidden file .gimp_03
nnoremap <Esc>[1;3R :read .gimp_03<CR>
inoremap <Esc>[1;3R <ESC>:read .gimp_03<CR>
:endif
" =============================================
This allows me to remap my Alt-function keys on a file-by-file basis to
insert snippets of file-dependent code. This works fine when editing
a single file, for example:
*vim gimp.html*
but it does not work when multiple files are specified as in:
*vim editor.html gimp.html*
The conditional assignments are made upon entering the first file,
but do not automatically update when moving on to the second file.
Three questions:
1) How can I make this update automatically as I switch between files?
2) I could do this by forcing every file to resource the *.vimrc* file upon
entry. However, the vim: modeline only works for set options. Is there
a similar method of executing a command (e.g., *:source .vimrc*) upon
entering a file?
3) Some files have symbolic links and may be accessed through
alternate names. Is there a variable that vim has that can produce
the "real" filename? Assuming that cannot be done, how do I write
a vim logical OR conditional; something like:
*:if ((condition 1) || (condition 2))*
I know this must be in the :help documentation, but so far I haven't
stumbled upon it.
Thanks.
--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_use/dcffb6ae-286c-4507-ad24-31b956f2f7d5%40googlegroups.com.