*jplus.txt* Join lines inserting characters in between ============================================================================== CONTENTS *jplus-contents* Introduction |jplus-introduction| Usage |jplus-usage| Interface |jplus-interface| Mappings |jplus-mapping| Settings |jplus-setting| Variables |jplus-variables| FAQ |jplus-FAQ| ============================================================================== INTRODUCTION *jplus-introduction* This plugin lets you input characters to insert between lines when joining lines. before: > aaa bbb ccc < ↓↓↓ (jplus-getchar)+ ↓↓↓ after: > aaa+bbb+ccc < Additionally, it deletes the line continuation character (such as \) when joining. before: > " filetype=vim let = aaa \ + bbb \ + ccc < ↓↓↓ (jplus) ↓↓↓ after: > let = aaa + bbb + ccc < ============================================================================== USAGE *jplus-usage* You can map it to the key of your preference to use it. > " Let jplus.vim handle default behaviour of J nmap J (jplus) vmap J (jplus) " Input one character getchar() to insert between lines nmap J (jplus-getchar) vmap J (jplus-getchar) " When you want to add surrounding spaces with (jplus-getchar) " %d is replaced with the input character let g:jplus#config = { \ "_" : { \ "delimiter_format" : ' %d ' \ } \} " When you want to use input() (for more than one character) " nmap J (jplus-input) " vmap J (jplus-input) < ============================================================================== INTERFACE *jplus-interface* ------------------------------------------------------------------------------ MAPPINGS *jplus-mapping* (jplus) *(jplus)* Does line concatenation similar to |J|. This will automatically remove the line continuation character (such as a trailing \) when joining lines. Automatic removal is done in the following 'filetype'. "bash" "c" "cpp" "ruby" "python" "vim" "zsh" The plugin will check the |jplus-config| set in |g:jplus#config|. See |jplus-config-priority| for more details. (jplus-getchar) *(jplus-getchar)* Similar to |(jplus)| but prompts for a character that is used as a delimiter for the lines. Character input is done using |getchar()|. The plugin will look settings in |g:jplus#input_config|. See |jplus-config-priority| for more details. (jplus-getchar-with-space) *(jplus-getchar-with-space)* Similar to |(jplus-getchar)|, but inserts surrounding spaces around the delimiter character. This has higher priority than the configurations in |g:jplus#input_config|. (jplus-input) *(jplus-input)* Similar to |(jplus-getchar)| but uses |input()| for prompting. (jplus-input-with-space) *(jplus-input-with-space)* Similar to |(jplus-input)| but inserts surrounding spaces around the delimiter character. This has higher priority than the configurations in |g:jplus#input_config|. ============================================================================== SETTINGS *jplus-setting* ------------------------------------------------------------------------------ VARIABLES *jplus-variables* g:jplus#config *g:jplus#config* States the configurations with 'filetype' being the keys. When "_" is used as the key, it is used as the default configurations. These configurations are used when key mappings such as |(jplus)| are used. See |jplus-config| for the format of the configurations per 'filetype'. NOTE: The delimiter characters entered using |(jplus-getchar)| have higher priority than the |jplus-config-delimiter| set in |g:jplus#config|. |g:jplus#default_config| *g:jplus#default_config* Same configurations as |g:jplus#config|. This variable is used as the default value, and is normally not modified by the user. g:jplus#input_config *g:jplus#input_config* |jplus-config| configurations that are used by |(jplus-getchar)| and |(jplus-input)|. Dictionary whose keys are the entered delimiter character. This is used when you want to change the format depending on the character entered. "__DEFAULT__" key is used as the default configurations. Example: > > " Surround the delimiter character with spaces by default " Only add a space to the left when joining with a comma let g:jplus#input_config = { \ "__DEFAULT__" : { \ "delimiter_format" : " %d " \ }, \ "," : { \ "delimiter_format" : "%d " \ } \} < ============================================================================== jplus-config *jplus-config* Defines the configurations that are used when joining lines. This is a dictionary with the key being the name of the configuration. Use this format for configurations such as |g:jplus#config|. Example: > " Don't join comment lines and delete them when filetype=vim let g:jplus#config = { \ "vim" : { \ "ignore_pattern" : '^\s*"' \ } \} < - "delimiter" *jplus-config-delimiter* Delimiter used when joining. Default: " " - "delimiter_format" *jplus-config-delimiter_format* The format of the delimiter. "%d" is replaced with the "delimiter". Default: "%d" - "ignore_pattern" *jplus-config-ignore_pattern* Ignore lines that match this pattern. Ignored lines are deleted. No lines are ignored when an empty string is set. Default: "" - "left_matchstr_pattern" *jplus-config-left_matchstr_pattern* The {pat} value used for |matchstr()| when applying the pattern to the left hand side when joining lines. Used when joining only certain strings. When joining multiple lines, this pattern is used on each line. Default: '.*' - "right_matchstr_pattern" *jplus-config-right_matchstr_pattern* Similar to |jplus-config-left_matchstr_pattern| but is applied to the right hand side. The default pattern "removes the leading whitespaces." Default: '\s*\zs.*' ------------------------------------------------------------------------------ PRIORITIES *jplus-config-priority* The following list shows the priorities of the |jplus-config| configurations used on |(jplus)|. 1. '_' key of |g:jplus#default_config| 2. '_' key of |g:jplus#config| 3. Current 'filetype' key of |g:jplus#default_config| 4. Current 'filetype' key of |g:jplus#config| where 1 is the lowest, and 4 is the highest priority. The priorities of the |jplus-config| used on |(jplus-getchar)| and |(jplus-input)| are the following. 1. '_' key of |g:jplus#default_config| 2. '_' key of |g:jplus#config| 3. '__DEFAULT__' key of |g:jplus#input_config| 4. Current 'filetype' key of |g:jplus#default_config| 5. Current 'filetype' key of |g:jplus#config| 6. { "delimiter" : {Entered delimiter} } 7. Entered delimiter in |g:jplus#input_config| where 1 is the lowest priority. If you want to change the configurations for the entered delimiter, change g:jplus#input_config[{Entered delimiter}].delimiter ============================================================================== FAQ *jplus-FAQ* Q. Don't remove the leading spaces when joining A. Set |jplus-config-right_matchstr_pattern| in |g:jplus#config|. > " Apply this right_matchstr_pattern to all strings " "_" is the default configuration for all filetypes let g:jplus#config = { \ "_" : { \ "matchstr_pattern" : '\s*\\\s*\zs.*\|\s*\zs.*' \ } \} < Q. Don't join lines that are commented out A. Set |jplus-config-ignore_pattern| in |g:jplus#config| > " When filetype=vim let g:jplus#config = { \ "vim" : { \ "ignore_pattern" : '^\s*"' \ } \} Q. When joining with "," using |(jplus-getchar)|, I want the delimiter to be ", " A. Add the settings for "," in |g:jplus#input_config| > let g:jplus#input_config = { \ "," : { \ "delimiter_format" : " %d " \ } \} < ============================================================================== vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl