Comments (6)
For example...
Expected behavior:
input | text
---------+-------------------------------------------------------------------------------------
{start} | call smartinput#map_to_trigger(|'<Plug>(physical-key-;)', '<Enter>', '<Enter>')
' | call smartinput#map_to_trigger('|''<Plug>(physical-key-;)', '<Enter>', '<Enter>')
i | call smartinput#map_to_trigger('i|''<Plug>(physical-key-;)', '<Enter>', '<Enter>')
' | call smartinput#map_to_trigger('i'|'<Plug>(physical-key-;)', '<Enter>', '<Enter>')
,<Space> | call smartinput#map_to_trigger('i', |'<Plug>(physical-key-;)', '<Enter>', '<Enter>')
Actual behavior:
input | text
---------+-------------------------------------------------------------------------------------
{start} | call smartinput#map_to_trigger('<Plug>(physical-key-;)', '<Enter>', '<Enter>')
' | call smartinput#map_to_trigger('|<Plug>(physical-key-;)', '<Enter>', '<Enter>')
i | call smartinput#map_to_trigger('i|<Plug>(physical-key-;)', '<Enter>', '<Enter>')
' | call smartinput#map_to_trigger('i'|<Plug>(physical-key-;)', '<Enter>', '<Enter>')
,<Space> | call smartinput#map_to_trigger('i', <Plug>(physical-key-;)', '<Enter>', '<Enter>')
from vim-smartinput.
I have come across this issue a few times now so I thought I'd give you my thoughts on the subject.
My preference is that (
is only completed to ()
when the character to the right of the cursor is not a space, tab or newline. I find that when the character to the right is not whitespace then I most likely intend to add a single (
, do some complex movement, and then insert the )
.
I think it is easier to enter insert mode so that the character to the right is whitespace to enable completion than it is to hit Ctrl+v
then (
to disable completion.
from vim-smartinput.
@b4winckler Thank you for the feedback. It's hard to define comfortable rules in most cases. I'll consider the problem later.
from vim-smartinput.
not sure how, but I think vim's searchpair
function might turn useful.
from vim-smartinput.
I currently use this custom rules because most of the time when I'm typing parantheses before a word what I want is to wrap that word inside the parantheses
call smartinput#define_rule({'at': '\%#\w', 'char': '(', 'input': '('})
call smartinput#define_rule({'at': '\%#\w', 'char': '[', 'input': '['})
call smartinput#define_rule({'at': '\%#\w', 'char': '{}', 'input': '{'})
call smartinput#define_rule({'at': '\%#\w', 'char': '''', 'input': ''''})
call smartinput#define_rule({'at': '\%#\w', 'char': '"', 'input': '"'})
from vim-smartinput.
@grota @char101 Thank you for the ideas. I'll consider them later.
from vim-smartinput.
Related Issues (20)
- difficulty closing a nested bracket if it's deleted HOT 2
- C-style expands not working HOT 5
- Erlang binary matching - question HOT 3
- .gitignore doc/tags for use with Pathogen HOT 1
- Report speech. HOT 5
- Problems when using vim-smartinput and vim-endwise together HOT 1
- Ability to change multiline pair exiting HOT 4
- Please document limitations of redo/undo/repeat HOT 1
- Turn off all auto-insertion/leaving when not perfectly balanced. HOT 1
- cause infinite loop in vim debug mode HOT 1
- eskk.vimに干渉する HOT 1
- smartinput seems to break cabbrev expansion with <CR> HOT 3
- won't allow } if braces are unbalanced HOT 4
- Feature request: Pair spaces if between brackets HOT 2
- Add support for repeat.vim HOT 1
- didn't delete '}' if delete '{' using <C-u>
- Is there a convenient way to escape from the inserted surroundings? HOT 1
- using <c-w> to delete brackets, only half of brackets deleted
- Can it support unicode character? HOT 1
- [feature] Add support for vim-visual-multi
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vim-smartinput.