aboutsummaryrefslogtreecommitdiff
path: root/vim
Commit message (Collapse)AuthorAgeFilesLines
* Use BufReadPost hook for big_file_options.vimTom Ryder2017-11-051-4/+4
| | | | | | | Using BufReadPre meant that it was too early to set the 'syntax' option locally for the buffer. This fixes that, and also works correctly for cases where the buffer does not necessarily correspond to a file on disk.
* Merge branch 'feature/gvimrc-refa...' into developTom Ryder2017-11-051-5/+10
|\ | | | | | | | | | | * feature/gvimrc-refactor: Set 'guioptions' flag by flag Use variable setting approach for 'guifont'
| * Set 'guioptions' flag by flagTom Ryder2017-11-041-3/+8
| | | | | | | | | | This is a bit easier to read than having the flags meanings in a block comment above the line.
| * Use variable setting approach for 'guifont'Tom Ryder2017-11-041-2/+2
| | | | | | | | A little easier to read.
* | Merge branch 'feature/plugin-shor...' into developTom Ryder2017-11-058-207/+236
|\ \ | | | | | | | | | | | | | | | * feature/plugin-short-circuit: Add short-circuit boilerplate to plugins Simplify shell linting code with single vars
| * | Add short-circuit boilerplate to pluginsTom Ryder2017-11-047-199/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set a g:loaded_* flag to prevent repeated reloads, and refuse to load at all if &compatible is set or if required features are missing. Some more accommodating plugins avoid the problems 'compatible' causes by saving its value at startup into a script variable, setting the option to the Vim default, and then restoring it when the plugin is done, to prevent any of its flags from interfering in the plugin code: let s:save_cpo = &cpo set cpo&vim ... let &cpo = s:save_cpo unlet s:save_cpo I don't want this boilerplate, so I'm going to do what Tim Pope's modules seem to, and just have the plugin refuse to do a single thing if 'compatible' is set.
| * | Simplify shell linting code with single varsTom Ryder2017-11-041-8/+8
| |/ | | | | | | | | Put the entire command line for the determined check and lint into the variable, so it can just be directly executed.
* | Limit search highlighting hooks to Vim >= 7.1Tom Ryder2017-11-051-1/+1
| | | | | | | | 'InsertEnter' and 'InsertLeave' are not autocmd events in Vim 6.1.
* | Add explanatory note for choosing imperfect remapTom Ryder2017-11-051-1/+4
|/ | | | | | 'vnoremap' also includes select mode, which I very seldom use anyway; in this context it's not worth breaking compatibility with old Vims to use the more accurate 'xnoremap'.
* Merge branch 'feature/space-dots' into developTom Ryder2017-11-043-5/+5
|\ | | | | | | | | * feature/space-dots: Use spaces around concat dots in VimL consistently
| * Use spaces around concat dots in VimL consistentlyTom Ryder2017-11-043-5/+5
| |
* | Adjust plugin code layout a lotTom Ryder2017-11-0424-67/+149
|/ | | | | | | | | | | | | Including renaming big_file.vim and accompanying functions yet again, to big_file_options.vim. Trying to keep complex autocmd and mapping definitions on long lines broken up semantically; definition and options on one line, patterns or mapping key on the next, and the command to run on the last. Also trying to make sure that <silent>, <buffer>, and <unique> are applied in the correct places, and that all mapping commands are using the :<C-U> idiom for the command prefix.
* Merge branch 'feature/spin-vim-plug' into developTom Ryder2017-11-0420-194/+326
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feature/spin-vim-plug: Rename toggle plugin again, use commands not funcs Add short documentation for new custom plugins Use same comment boilerplate for custom plugins Check 'eval' feature for loading command_typos.vim Wrap detect_background.vim func call in 'silent!' Rename and refactor option toggle plugin Don't suggest mappings in Vim plugin comments Move Vim background detection logic into plugin Specify an install-vim-autoload target Spin 'fo' toggle out into new flag toggler plugin Spin copyable linebreak config into new plugin Spin stable join config out into new plugin Use <Plug> prefix, make space strip configurable Rename a misnamed variable in big_file.vim Rename bigfile plugin to big_file Move trailing space strip config into plugin Separate command typos config to plugin
| * Rename toggle plugin again, use commands not funcsTom Ryder2017-11-045-74/+68
| | | | | | | | | | | | This method makes a bit more sense, and amounts to slightly less verbose mapping commands. It does really on the +user_commands feature being available, however.
| * Add short documentation for new custom pluginsTom Ryder2017-11-046-0/+77
| | | | | | | | | | | | | | | | | | I'm using the plugin_name.txt syntax suggested by the Vim documentation. That may change in future as I study plugins written by experienced authors like Tim Pope. There will almost certainly be a lot more detail to add to each of these.
| * Use same comment boilerplate for custom pluginsTom Ryder2017-11-046-3/+25
| | | | | | | | A brief explanation, an author name, and the license should do fine.
| * Check 'eval' feature for loading command_typos.vimTom Ryder2017-11-041-1/+1
| | | | | | | | | | I strongly suspect the presence of 'user_commands' implies it, but I'm not sure.
| * Wrap detect_background.vim func call in 'silent!'Tom Ryder2017-11-041-1/+1
| | | | | | | | | | | | This prevents older versions of Vim like 6.2 from throwing "E1017: Missing braces" on merely parsing this code, even though they don't evaluate it.
| * Rename and refactor option toggle pluginTom Ryder2017-11-042-54/+51
| | | | | | | | | | | | | | | | Renamed to flag_toggle.vim and placed in autoload using the namespaced autoload function syntax. I'm not sure this is the right approach yet, but I seem to pretty rarely use a Vim earlier than 7.1 these days.
| * Don't suggest mappings in Vim plugin commentsTom Ryder2017-11-044-6/+0
| | | | | | | | Pretty useless, really.
| * Move Vim background detection logic into pluginTom Ryder2017-11-042-25/+20
| |
| * Spin 'fo' toggle out into new flag toggler pluginTom Ryder2017-11-042-27/+62
| | | | | | | | | | | | | | | | | | This is an experimental new plugin that provides a command to toggle individual single-character flags in an option with a value of a set of such flags, in my case 'formatoptions'. A fair bit of evil eval()ing via :execute here, but I've tried to control it with some strict patern matching.
| * Spin copyable linebreak config into new pluginTom Ryder2017-11-042-34/+40
| | | | | | | | | | Calling this one copy_linebreak.vim. Renamed both the internal function and the plugin key.
| * Spin stable join config out into new pluginTom Ryder2017-11-042-21/+30
| | | | | | | | | | Again using the <Plug> mapping abstraction and not defining the mapping for the user.
| * Use <Plug> prefix, make space strip configurableTom Ryder2017-11-042-4/+8
| | | | | | | | | | | | This properly abstracts out the StripTrailingWhitespace mapping rather than forcing it to <leader>x within the plugin itself. A bit nicer this way.
| * Rename a misnamed variable in big_file.vimTom Ryder2017-11-041-4/+4
| | | | | | | | The word "size" was added to this variable's name unnecesarily.
| * Rename bigfile plugin to big_fileTom Ryder2017-11-042-13/+13
| | | | | | | | | | | | | | | | Just for consistency with the other plugins I'm making. I don't think I really like the cutesy names given to Vim plugins. I prefer the slightly longer and maybe even namespaced names like Perl distributions and modules have. Let's see how well this works.
| * Move trailing space strip config into pluginTom Ryder2017-11-031-0/+0
| |
| * Separate command typos config to pluginTom Ryder2017-11-032-15/+14
| | | | | | | | | | Tentatively named command_typos.vim. I've just moved this as-is for now, but it will need review, especially the hardcoded mappings.
* | Check for 'eval' feature before mapleader :letTom Ryder2017-11-041-2/+4
| | | | | | | | | | This was causing a tiny build of Vim to raise errors about :let being an unavailable command.
* | Add lint mapping for VimscriptTom Ryder2017-11-041-0/+5
| | | | | | | | Runs `vint -s`; the -s includes stylistic suggestions.
* | Specify scope of mapleader variablesTom Ryder2017-11-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | `vint -s` says: vim/config/leader.vim:2:5: Make the scope explicit like `g:mapleader` (see Anti-pattern of vimrc (Scope of identifier)) vim/config/leader.vim:3:5: Make the scope explicit like `g:maplocalleader` (see Anti-pattern of vimrc (Scope of identifier)) This does still seem to work with the prefixes, despite not being the way the documentation specifies the variables.
* | Use underscore as local map leaderTom Ryder2017-11-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should allow me to mentally separate actions specific to a buffer type from actions that apply to buffers in general. It also removes the overlap of <leader>l for 'list' toggling and filetype linting. From ":help maplocalleader": > <LocalLeader> is just like <Leader>, except that it uses > "maplocalleader" instead of "mapleader". <LocalLeader> is to be used > for mappings which are local to a buffer. Example: > > :map <buffer> <LocalLeader>A oanother line<Esc> > > In a global plugin <Leader> should be used and in a filetype plugin > <LocalLeader>. "mapleader" and "maplocalleader" can be equal. > Although, if you make them different, there is a smaller chance of > mappings from global plugins to clash with mappings for filetype > plugins. For example, you could keep "mapleader" at the default > backslash, and set "maplocalleader" to an underscore.
* | Add check and lint mappings for shell scriptTom Ryder2017-11-041-0/+22
| | | | | | | | | | The commands to use in this case are dependent on the particular shell being used.
* | Add tidy mapping for HTMLTom Ryder2017-11-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | This mapping mirrors the one for Perl that passes the content of the buffer through a program to tidy it (i.e. not merely check but actively change it). The tidy(1) option chosen here, -quiet, is the bare minimum to make this invocation useful. We would never want the boilerplate it otherwise emits to be in the buffer after a call. Everything else should be applied in a configuration file, which I'll do in a separate feature.
* | Break long lines in check/lint/tidy mappingsTom Ryder2017-11-042-5/+12
| |
* | Make all lint/check/tidy maps local and silentTom Ryder2017-11-042-5/+5
| | | | | | | | | | | | That is, apply <buffer> and <silent> to each of them, to make them only apply to the current buffer and to prevent them from echoing the command they're running.
* | Improve comments on check/lint/tidy mapsTom Ryder2017-11-032-4/+4
| |
* | Use long form options for tidy(1) Vim callTom Ryder2017-11-031-2/+2
| |
* | Use direct :write !cmd instead of shellescape()Tom Ryder2017-11-032-17/+7
| | | | | | | | | | | | | | | | | | This is a much better method of calling external programs on the buffer's contents, not just because it avoids the mess of :execute evaluation but also because it doesn't require that there actually be a filename for the current buffer. This drastically simplifies the HTML tidy(1) call in particular.
* | Use full ':execute' not just ':exe' in VimLTom Ryder2017-11-032-3/+3
| | | | | | | | We should probably avoid this sort of abbreviation in scripts.
* | Check for availability of Vim shellescape()Tom Ryder2017-11-032-10/+17
| | | | | | | | | | It doesn't seem to be in very old Vims; worth testing for to avoid errors if I try to use the function.
* | Revert "Adjust UrlLink() to yank word without t...Tom Ryder2017-11-031-3/+1
| | | | | | | | | | | | | | | | I thought text objects were introduced to Vim a lot later than they actually were; this works fine even in Vim 6, so I'll leave it as it's nicer. This reverts commit ffb5cbc7c681e2fdcb780dbdc51cf3458a937791.
* | Adjust UrlLink() to yank word without text objectsTom Ryder2017-11-031-1/+3
| |
* | Refactor UrlLink() function normal! commandsTom Ryder2017-11-031-2/+10
| | | | | | | | | | | | | | | | | | Tidy up the 'normal!' commands and comment them in appropriate groups. Take advantage of the natural command-termination at the end of a 'normal!' string to end insert mode. It would be better to do all of this with pure VimL functions, but I don't know how yet.
* | Use single quotes for HTML link mapping :executeTom Ryder2017-11-031-2/+2
| | | | | | | | Saves some backslashing, just like in shell and Perl!
* | Refactor HTML tidy(1) mappingTom Ryder2017-11-031-1/+4
| | | | | | | | | | Move the logic into a script function. Use single quotes for the strings, too, since we don't need interpolation.
* | Use <Leader>/<LocalLeader> correctly in Vim configTom Ryder2017-11-039-18/+18
| | | | | | | | | | | | | | From ":help <LocalLeader>": > In a global plugin <Leader> should be used and in a filetype plugin > <LocalLeader>. "mapleader" and "maplocalleader" can be equal.
* | Merge branch 'hotfix/v0.4.2' into developTom Ryder2017-11-031-8/+13
|\ \ | | | | | | | | | | | | | | | * hotfix/v0.4.2: Require eval feature for netrw opts assignment Bump version number to 0.4.2
| * | Require eval feature for netrw opts assignmentTom Ryder2017-11-031-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tiny builds of Vim that exclude the eval feature throw errors at the :let commands in this file: $ vim.tiny Error detected while processing /home/tom/.vim/config/netrw.vim: line 2: E319: Sorry, the command is not available in this version: let g:netrw_banner = 0 line 5: E319: Sorry, the command is not available in this version: let g:netrw_silent = 1 line 8: E319: Sorry, the command is not available in this version: let g:netrw_liststyle = 3 line 11: E319: Sorry, the command is not available in this version: let g:netrw_list_hide = '^\.$,^tags$' Press ENTER or type command to continue This code was not being run on such builds before commit 538b71c, because it was in an "after" directory for the netrw plugin and would have been skipped. Wrapping a check for has('eval') around this whole file fixes the problem. netrw.vim won't run without this feature anyway.