Comments (2)
Thank you for the feedback. How about the following configuration?
call smartinput#map_to_trigger('i', '#', '#', '#')
call smartinput#map_to_trigger('i', '<Bar>', '<Bar>', '<Bar>')
call smartinput#define_rule({'at': '\%#', 'char': '#', 'input': '#{}<Left>', 'filetype': ['ruby'], 'syntax': ['Constant', 'Special']})
call smartinput#define_rule({'at': '\%#', 'char': '<Bar>', 'input': '<Bar><Bar><Left>', 'filetype': ['ruby']})
|
has a special meaning in key mappings. So that it should be written in another form <Bar>
.
input
items in rules are internally passed to :map
commands. So that special keys must be written like '<Left>'
instead of "\<Left>"
.
If you edit a Ruby script and the current buffer contains a text 'foo'
,
- The opening
'
is highlighted asConstant
(overSpecial
). - Quoted text is highlighted as
Constant
. - The closing
'
is highlighted asSpecial
.
So that the syntax
item of the former rule must contain also Special
.
You can use the following command to check how the character under the cursor is highlighted:
echo map(synstack(line('.'), col('.')), 'synIDattr(synIDtrans(v:val), "name")')
Additionally, |
is often used as foo ||= bar
, it's better to use the latter rule if the cursor is just after {
or do
, isn't it?
call smartinput#define_rule({'at': '\({\|\<do\>\)\s*\%#', 'char': '<Bar>', 'input': '<Bar><Bar><Left>', 'filetype': ['ruby']})
Since I wrote vim-smartinput for my personal use, I've never thought that it is used by others. And it's a bit tricky to write rules involving special keys. I'll add more description to the document.
from vim-smartinput.
Thank you for the quick reply,
I'll try this a soon has I have a little of spare time and tell you if it work.
I see your plugin in thechanglog blog and decide that I should try it.
For the moment it work quit well and do the work.
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.