From b3995f5ee908fa184af877b5da1a0d274af55bb2 Mon Sep 17 00:00:00 2001 From: Kevin Le Date: Mon, 23 Nov 2015 14:54:46 -0800 Subject: markdown readme --- README.md | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.rst | 133 ----------------------------------------------------- 2 files changed, 151 insertions(+), 133 deletions(-) create mode 100644 README.md delete mode 100644 README.rst diff --git a/README.md b/README.md new file mode 100644 index 0000000..462eb20 --- /dev/null +++ b/README.md @@ -0,0 +1,151 @@ +CamelCaseMotion.vim +==================== + +Created By [Ingo Karkat](https://github.com/inkarkat) + +Description +----------- +Vim provides many built-in motions, e.g. to move to the next word, or end of +the current word. Most programming languages use either CamelCase +("anIdentifier") or underscore_notation ("an_identifier") naming conventions +for identifiers. The best way to navigate inside those identifiers using Vim +built-in motions is the [count]f{char} motion, i.e. f{uppercase-char} or f\_, +respectively. But we can make this easier: + +This script defines motions similar to 'w', 'b', 'e' which do not move +word-wise (forward/backward), but Camel-wise; i.e. to word boundaries and +uppercase letters. The motions also work on underscore notation, where words +are delimited by underscore ('_') characters. From here on, both CamelCase +and underscore_notation entities are referred to as "words" (in double quotes). +Just like with the regular motions, a [count] can be prepended to move over +multiple "words" at once. Outside of "words" (e.g. in non-keyword characters +like // or ;), the new motions move just like the regular motions. + +Vim provides a built-in 'iw' text object called 'inner word', which works in +operator-pending and visual mode. Analog to that, this script defines inner +"word" motions which select the "word" (or multiple "words" if a [count] is +given) where the cursor is located. + +Usage +====== +To use the default mappings, add the following to your vimrc: + +```vim +camelcasemotion#CreateMotionMappings('') +``` + +If you want to use different mappings, map your keys to the +CamelCaseMotion_? mapping targets your vimrc). + +EXAMPLE: Map to w, b and e mappings: + +```vim +map w CamelCaseMotion_w +map b CamelCaseMotion_b +map e CamelCaseMotion_e +map ge CamelCaseMotion_ge +sunmap w +sunmap b +sunmap e +sunmap ge +``` + +EXAMPLE: Map iw, ib and ie motions: + +```vim +omap iw CamelCaseMotion_iw +xmap iw CamelCaseMotion_iw +omap ib CamelCaseMotion_ib +xmap ib CamelCaseMotion_ib +omap ie CamelCaseMotion_ie +xmap ie CamelCaseMotion_ie +``` + +Most commonly motions are 'w', 'b' and 'e', all of which can +be used in normal mode, operator-pending mode (cp. `:help operator`), and visual +mode. For example, type 'bcw' to change 'Camel' in 'CamelCase' to +something else. + +The `` string is defined with the `mapleader` variable in vim, and +defaults to the backslash character (`\\`). Therefore, the motions defined by +this plugin would resolve to '\\w', '\\b' and '\\e'. Some vim users prefer to use +the comma key (`,`), which you may have already defined in your vimrc. To +check your current mapleader, execute: + +```vim +:let mapleader +``` + +If you get an error, you are still using the default (`\\`). If you wish to +define a new mapleader, try: + +```vim +:let mapleader = "your_new_mapleader_string" +``` + +Drop the `:` if you are defining the mapleader in your vimrc. For more +information about mapleader, check out: + +```vim +:help mapleader +``` + +Motions Example +--------------- + +Given the following CamelCase identifiers in a source code fragment: + +``` +set Script31337PathAndNameWithoutExtension11=%~dpn0 +set Script31337PathANDNameWITHOUTExtension11=%~dpn0 +``` + +and the corresponding identifiers in underscore_notation: + +``` +set script_31337_path_and_name_without_extension_11=%~dpn0 +set SCRIPT_31337_PATH_AND_NAME_WITHOUT_EXTENSION_11=%~dpn0 +``` + +w moves to ([x] is cursor position): [s]et, [s]cript, [3]1337, [p]ath, +[a]nd, [n]ame, [w]ithout, [e]xtension, [1]1, [d]pn0, dpn[0], [s]et + +b moves to: [d]pn0, [1]1, [e]xtension, [w]ithout, ... + +e moves to: se[t], scrip[t], 3133[7], pat[h], an[d], nam[e], withou[t], +extensio[n], 1[1], dpn[0] + +Inner Motions Example +--------------------- +Given the following identifier, with the cursor positioned at [x]: + +``` +script_31337_path_and_na[m]e_without_extension_11 +``` + +v3iw selects script_31337_path_and_[name_without_extension\_]11 + +v3ib selects script_31337_[path_and_name]_without_extension_11 + +v3ie selects script_31337_path_and_[name_without_extension]_11 + +Instead of visual mode, you can also use c3iw to change, d3iw +to delete, gU3iw to upper-case, and so on. + +Source +------ + +Based on [Moving through camel case words](http://vim.wikia.com/wiki/Moving_through_camel_case_words) by Anthony Van Ham. + +Installation +------------ +If you're using [Vundle](https://github.com/VundleVim/Vundle.vim), +just add `Plugin 'bkad/CamelCaseMotion'` to your .vimrc and run `:PluginInstall`. + +If you're using [pathogen](https://github.com/tpope/vim-pathogen), +add this repo to your bundle directory. + +Dependencies +------------ + +Requires Vim 7.0 or higher. diff --git a/README.rst b/README.rst deleted file mode 100644 index bb86391..0000000 --- a/README.rst +++ /dev/null @@ -1,133 +0,0 @@ -==================== -CamelCaseMotion.vim -==================== - -Created By Ingo Karkat (https://github.com/inkarkat) - -Description -============ -Vim provides many built-in motions, e.g. to move to the next word, or end of -the current word. Most programming languages use either CamelCase -("anIdentifier") or underscore_notation ("an_identifier") naming conventions -for identifiers. The best way to navigate inside those identifiers using Vim -built-in motions is the [count]f{char} motion, i.e. f{uppercase-char} or f\_, -respectively. But we can make this easier: - -This script defines motions similar to 'w', 'b', 'e' which do not move -word-wise (forward/backward), but Camel-wise; i.e. to word boundaries and -uppercase letters. The motions also work on underscore notation, where words -are delimited by underscore ('_') characters. From here on, both CamelCase -and underscore_notation entities are referred to as "words" (in double quotes). -Just like with the regular motions, a [count] can be prepended to move over -multiple "words" at once. Outside of "words" (e.g. in non-keyword characters -like // or ;), the new motions move just like the regular motions. - -Vim provides a built-in 'iw' text object called 'inner word', which works in -operator-pending and visual mode. Analog to that, this script defines inner -"word" motions which select the "word" (or multiple "words" if a [count] is -given) where the cursor is located. - -Usage -====== -To use the default mappings, add the following to your vimrc:: - camelcasemotion#CreateMotionMappings('') - -If you want to use different mappings, map your keys to the -CamelCaseMotion_? mapping targets your vimrc). - -EXAMPLE: Map to w, b and e mappings:: - map w CamelCaseMotion_w - map b CamelCaseMotion_b - map e CamelCaseMotion_e - map ge CamelCaseMotion_ge - sunmap w - sunmap b - sunmap e - sunmap ge - -EXAMPLE: Map iw, ib and ie motions:: - omap iw CamelCaseMotion_iw - xmap iw CamelCaseMotion_iw - omap ib CamelCaseMotion_ib - xmap ib CamelCaseMotion_ib - omap ie CamelCaseMotion_ie - xmap ie CamelCaseMotion_ie - -Most commonly motions are 'w', 'b' and 'e', all of which can -be used in normal mode, operator-pending mode (cp. :help operator), and visual -mode. For example, type 'bcw' to change 'Camel' in 'CamelCase' to -something else. - -The ```` string is defined with the ``mapleader`` variable in vim, and -defaults to the backslash character (``\``). Therefore, the motions defined by -this plugin would resolve to '\\w', '\\b' and '\\e'. Some vim users prefer to use -the comma key (``,``), which you may have already defined in your vimrc. To -check your current mapleader, execute:: - - :let mapleader - -If you get an error, you are still using the default (``\``). If you wish to -define a new mapleader, try:: - - :let mapleader = "your_new_mapleader_string" - -Drop the ``:`` if you are defining the mapleader in your vimrc. For more -information about mapleader, check out:: - - :help mapleader - -**Motions Example** - -Given the following CamelCase identifiers in a source code fragment:: - - set Script31337PathAndNameWithoutExtension11=%~dpn0 - set Script31337PathANDNameWITHOUTExtension11=%~dpn0 - -and the corresponding identifiers in underscore_notation:: - - set script_31337_path_and_name_without_extension_11=%~dpn0 - set SCRIPT_31337_PATH_AND_NAME_WITHOUT_EXTENSION_11=%~dpn0 - -w moves to ([x] is cursor position): [s]et, [s]cript, [3]1337, [p]ath, -[a]nd, [n]ame, [w]ithout, [e]xtension, [1]1, [d]pn0, dpn[0], [s]et - -b moves to: [d]pn0, [1]1, [e]xtension, [w]ithout, ... - -e moves to: se[t], scrip[t], 3133[7], pat[h], an[d], nam[e], withou[t], -extensio[n], 1[1], dpn[0] - -**Inner Motions Example** -Given the following identifier, with the cursor positioned at [x]:: - - script_31337_path_and_na[m]e_without_extension_11 - -v3iw selects script_31337_path_and_[name_without_extension\_]11 - -v3ib selects script_31337_[path_and_name]_without_extension_11 - -v3ie selects script_31337_path_and_[name_without_extension]_11 - -Instead of visual mode, you can also use c3iw to change, d3iw -to delete, gU3iw to upper-case, and so on. - -**Source** - -Based on http://vim.wikia.com/wiki/Moving_through_camel_case_words by Anthony Van Ham. - -Installation -============= -This script is packaged as a vimball. If you have the "gunzip" decompressor -in your PATH, simply edit the \*.vba.gz package in Vim; otherwise, decompress -the archive first, e.g. using WinZip. Inside Vim, install by sourcing the -vimball or via the ``:UseVimball`` command. - -:: - - vim camelcasemotion.vba.gz - :so % - -To uninstall, use the ``:RmVimball`` command. - -**Dependencies** - -Requires Vim 7.0 or higher. -- cgit v1.1