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 vim
Perhaps 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.git
If not using a plugin manager, then this plugin may be installed via make install
command...
cd ~/git/hub/vim-utilities/balanced-quotes
make install
If 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 upgrade
After installation, plugin documentation may be accessed via Vim's :help
command, eg...
help balanced-quotes.txt
While 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 main
Note, the
-u
option may be used to setfork
as the default remote, eg.git push -u fork main
however, this will also default thefork
remote for pulling from too! Meaning that pulling updates fromorigin
must 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.