| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This variable is not set in older Vims (early 6.x), and I think it's
worth guarding for.
|
|
|
|
|
|
| |
This error seems to be raised when ShellCheck can't source a file
because its filename is not known until runtime. I don't want it to do
that anyway, so I've just excluded it by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a relatively drastic change that should have been done
progressively, but I got carried away in ripping everything out and
putting it back in again.
Reading the documentation for writing a Vim script (:help usr_41.txt), I
am convinced that all of the content that was in the vim/ftplugin
directory and some of the vim/indent directory actually belonged in
vim/after/ftplugin and vim/after/indent respectively.
This is because the section on filetypes makes the distinction between
replacing the core filetype or indent plugins and merely adding to or
editing them after the fact; from :help ftplugin:
> If you do want to use the default plugin, but overrule one of the
> settings, you can write the different setting in a script:
>
> setlocal textwidth=70
>
> Now write this in the "after" directory, so that it gets sourced after
> the distributed "vim.vim" ftplugin after-directory. For Unix this
> would be "~/.vim/after/ftplugin/vim.vim". Note that the default
> plugin will have set "b:did_ftplugin", but it is ignored here.
Therefore, I have deleted the user_indent.vim and user_ftplugin.vim
plugins and their documentation that I wrote, and their ftplugin.vim and
indent.vim shims in ~/.vim, in an attempt to make these plugins
elegantly undo-ready, and instead embraced the way the documentation and
$VIMRUNTIME structure seems to suggest.
I broke the ftplugin files up by function and put them under
subdirectories of vim/after named by filetype, as the 'runtimepath'
layout permits. In doing so, I also carefully applied the
documentation's advice:
* Short-circuiting repeated loads
* Checking for existing mappings using the <Plug> prefix approach
* Avoiding repeated function declarations overwriting each other
* Guarding against 'cpotions' mangling things (by simply
short-circuiting if 'compatible' is set).
I've made the b:undo_ftplugin and b:undo_indent commands less forgiving,
and append commands to it inline with the initial establishment of the
setup they're reversing, including checking that the b:undo_* variable
actually exists in the first place.
For the indentation scripts, however, three of the four files originally
in vim/indent actually do belong there:
1. csv.vim, because it doesn't have an indent file in the core.
2. tsv.vim, because it doesn't have an indent file in the core.
3. php.vim, because it does what ftplugins are allowed to do in
preventing the core indent rules from running at all.
The indent/vim.vim rules, however, have been moved to
after/indent/vim.vim, because the tweaks it makes for two-space
indentation are designed to supplement the core indent rules, not
replace them.
Finally, I've adjusted Makefile targets accordingly for the above, given
the vim/ftplugin directory is now empty and there are three new
directories in vim/after to install. We wrap these under a single
`install-vim-after` parent target for convenience. The
`install-vim-after-ftplugin` target accommodates the additional level of
filetype directories beneath it.
|
|
|
|
| |
user_ftplugin.vim and user_indent.vim seem to be missing it.
|
|\
| |
| |
| |
| |
| |
| | |
* feature/vim-mutt-plug:
Move mutt_mail.vim line select logic into plugin
Add new mail_mutt.vim plugin, apply mappings
Beginnings of a buffer-to-Mutt mailer plugin
|
| |
| |
| |
| | |
This makes the configuration shorter and easier to read.
|
| |
| |
| |
| |
| | |
This plugin provides a shortcut for staring email messages in Mutt with
a range of lines.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
These flags prevent multiple messages from reading or writing multiple
files from queuing up and forcing an enter prompt. They're part of the
default, which is why I didn't notice their absence until I tried using
the setting previous to this commit and opened two files at once.
|
| |
| |
| |
| |
| | |
Most of these are actually the default; may as well explicitly set and
document them, however. t and T in particular are new.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From :help hidden-options:
>Not all options are supported in all versions. This depends on the
>supported features and sometimes on the system. A remark about this is
>in curly braces below. When an option is not supported it may still be
>set without getting an error, this is called a hidden option. You can't
>get the value of a hidden option though, it is not stored.
>
>To test if option "foo" can be used with ":set" use something like this:
> if exists('&foo')
>This also returns true for a hidden option. To test if option "foo" is
>really supported use something like this:
> if exists('+foo')
|
| | |
|
| | |
|
| |
| |
| |
| | |
For plugin-specific configuration.
|
| |
| |
| |
| |
| | |
This will allow the Windows-specific stuff in my new auto_* plugins to
quote filenames correctly.
|
| |
| |
| |
| | |
For OS-dependent config.
|
| |
| |
| |
| | |
I never use it. May as well defer to the vi default.
|
| | |
|
| |
| |
| |
| | |
'paste' is specific to the terminal only anyway.
|
| | |
|
| |
| |
| |
| | |
Clearer filename and more consistent to use the noun.
|
| |
| |
| |
| | |
A little clearer and a needless abbreviation anyway.
|
| |
| |
| |
| | |
More likely to share options this way.
|
| | |
|
| |
| |
| |
| |
| | |
More accurate given the content, and more likely to have other options
set in it.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
:help 'tabstop' says that setting it may be a bad idea:
> Note: Setting 'tabstop' to any other value than 8 can make your file
> appear wrong in many places (e.g., when printing it).
On thinking about it, it's actually probably better to show literal tabs
as eight screen spaces, as it will make it very obvious when there are
tabs in the file.
|
| |
| |
| |
| |
| |
| | |
The syntax highlighter flags this code with an error on the final square
bracket: `case $foo in [![:ascii:]]) ;; esac`, but that's all legal. I'm
not yet sure how to fix it, so will just turn the error group for now.
|
| |
| |
| |
| |
| |
| |
| | |
These two changes coax syntax/sh.vim into realising that POSIX shell
does not specify 'until' as a builtin (that's a Bash/Ksh thing), and
that POSIX shell is able to nest 'while' loops within other blocks
(that's not a Bash/Ksh thing).
|
|/
|
|
| |
This was causing nasty errors whenever I started editing a Perl file.
|
|
|
|
| |
We only want to remove the normal mode mapping, since that's all we set.
|
|
|
|
|
| |
I didn't realise that a null command at the front of .e.g '|cmd|cmd2'
printed the current line! Removed that.
|
|
|
|
| |
Unload all maps too, with silent! in case they don't exist.
|
|
|
|
|
|
| |
This is what was missing after I initially redefined these groups and
stopped all POSIX shell scripts thinking they were POSIX. The words now
highlight correctly when within control structures again.
|
|
|
|
|
| |
It's not a shell builtin in `dash`, but it is in `Bash`, and I kind of
think of it that way.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The defaults for these groups don't make much sense to me, so I
completely reset them.
This isn't quite complete yet; for some reason as soon as e.g. an IFS=
setting is contained in e.g. an "if" or "while" block, they don't
highlight correctly anymore. There's probably some other part of the
core syntax/sh.vim file I need to include here.
|
| |
|
|
|
|
| |
Just for legibility.
|
|
|
|
|
| |
Just to reduce the chance of colliding with existing buffer variable
names.
|
|
|
|
|
|
| |
syntax/sh.vim only uses the existence of these variables for its checks
and as far as I can see never their actual values, so let's not overdo
things.
|
| |
|
| |
|
|
|
|
| |
This was likely a copy-paste error.
|
|
|
|
|
|
|
|
|
|
| |
From :help ftdetect, item 2:
> 2. Create a file that contains an autocommand to detect the file type.
> Example:
> au BufRead,BufNewFile *.mine set filetype=mine
> Note that there is no "augroup" command, this has already been done
> when sourcing your file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than setting g:is_posix and working around core syntax/sh.vim's
ideas about Korn and POSIX shells, forego sh.vim's efforts to guess what
shell the system /bin/sh is entirely. It's irrelevant to me anyway,
since I'll often be writing shell scripts to run on an entirely
different system.
Instead, if we have a #!/bin/sh shebang reflected in the b:is_sh
variable set by core filetype.vim, and we don't have any other
buffer-level indication of what shell this is, assume it's POSIX,
because I very rarely write Bourne.
Then, after the syntax file is loaded, clear away all but one of the
resulting b:is_* variables.
I have a feeling this is going to end with me re-implementing this
syntax file, possibly as separate sh.vim, bash.vim, and ksh.vim files.
|