Attempts to balance quotes in unobtrusive ways
This repository requires the Vim text editor to be installed the source code is available on GitHub -- vim/vim, and most GNU Linux package managers are able to install Vim directly, eg...
- Arch based Operating Systems
sudo packman -Syy
sudo packman -S vim- Debian derived Distributions
sudo apt-get update
sudo apt-get install vimPerhaps as easy as one, 2.0,...
Clone this project...
mkdir -vp ~/git/hub/vim-utilities
cd ~/git/hub/vim-utilities
git clone [email protected]:vim-utilities/balanced-quotes.gitIf not using a plugin manager, then this plugin may be installed via make install command...
cd ~/git/hub/vim-utilities/balanced-quotes
make installIf not using a plugin manager, then this plugin may be uninstalled via uninstall Make target...
cd ~/git/hub/vim-utilities/balanced-quotes
make uninstall... Which will remove symbolic links and update the Vim help tags file.
To update in the future use make upgrade command...
cd ~/git/hub/vim-utilities/balanced-quotes
make upgradeAfter installation, plugin documentation may be accessed via Vim's :help command, eg...
help balanced-quotes.txtWhile in Insert mode quotes will have the following behavior:
-
' Open single-quote; automatically inserts a closing quote, and moves cursor left by one column
-
" Open double-quote; automatically inserts a closing quote, and moves cursor left by one column
-
` Open backtick; automatically inserts a closing backtick, and moves cursor left by one column
Existing defaults may be modified or extended by assigning g:balanced_quotes variable within the ~/.vimrc file for a given account. Example of defaults...
let g:balanced_quotes = {
\ 'exclude': [],
\ 'all': {
\ 'single-quote': { 'open': "'" },
\ 'double-quote': { 'open': '"' },
\ 'backtick': { 'open': "`" },
\ },
\ }Exclude example...
let g:balanced_quotes = {
\ 'exclude': [ 'help', 'markdown' ],
\ }Customize all example...
let g:balanced_quotes = {
\ 'all': {
\ 'vertical-bar': { 'open': '|', 'close': '|' },
\ }
\ }Filetype customization example...
let g:balanced_quotes = {
\ 'help': {
\ 'asterisk': { 'open': '*' },
\ }
\ }Remove all entry example...
let g:balanced_quotes = {
\ 'all': {
\ 'backtick': false,
\ },
\ }Alternatively one may instead assign a JSON file path to the g:balanced_quotes variable to customize configurations, eg...
{
"exclude": [],
"all": {
"single-quote": { "open": "'" },
"double-quote": { "open": "\"" },
"backtick": { "open": "`" }
}
}Configuration via JSON example~
let g:balanced_quotes = '~/.vim/configs/balanced-quotes.json'This repository may not be feature complete and/or fully functional, Pull Requests that add features or fix bugs are certainly welcomed.
Options for contributing to balanced-quotes and vim-utilities
Start making a Fork of this repository to an account that you have write permissions for.
- Add remote for fork URL. The URL syntax is
[email protected]:<NAME>/<REPO>.git...
cd ~/git/hub/vim-utilities/balanced-quotes
git remote add fork [email protected]:<NAME>/balanced-quotes.git- Commit your changes and push to your fork, eg. to fix an issue...
cd ~/git/hub/vim-utilities/balanced-quotes
git commit -F- <<'EOF'
:bug: Fixes #42 Issue
**Edits**
- `<SCRIPT-NAME>` script, fixes some bug reported in issue
EOF
git push fork mainNote, the
-uoption may be used to setforkas the default remote, eg.git push -u fork mainhowever, this will also default theforkremote for pulling from too! Meaning that pulling updates fromoriginmust be done explicitly, eg.git pull origin main
- Then on GitHub submit a Pull Request through the Web-UI, the URL syntax is
https://github.com/<NAME>/<REPO>/pull/new/<BRANCH>
Note; to decrease the chances of your Pull Request needing modifications before being accepted, please check the dot-github repository for detailed contributing guidelines.
Thanks for even considering it!
Via Liberapay you may on a repeating basis.
Regardless of if you're able to financially support projects such as balanced-quotes that vim-utilities maintains, please consider sharing projects that are useful with others, because one of the goals of maintaining Open Source repositories is to provide value to the community.
-
Vi -- StackExchange -- How can I merge two dictionaries in Vim?
-
:help fnamemodify() -
:help json_decode() -
:help :map-<buffer> -
:help readfile() -
:help type()
Attempts to balance quotes in unobtrusive ways
Copyright (C) 2021 S0AndS0
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
For further details review full length version of AGPL-3.0 License.