Comments (8)
Thank you for the feedback. I'll investigate the problem. Please wait a moment.
from vim-textobj-user.
textobj-user doesn't consider about using the same pattern to express the beginning and the end of a range. I'll fix it later.
As a workaround, use the following configuration instead. It emulates the original configuration you wrote, though it may not work as you expect in a specific situation.
call textobj#user#plugin('handyobjects', {
\ 'underscores_a': {
\ 'select': 'au',
\ '*pattern*': '_[^_]*_'
\ },
\ 'underscores_i': {
\ 'select': 'iu',
\ '*pattern*': '_\zs[^_]\+\ze_'
\ },
\ })
from vim-textobj-user.
Great, thanks for help.
I'll watch this repository for updates ;)
Btw, I also tried to change text between pipes "|" using "ci|" but pipe character isn't allowed unfortunately. But I suspect this won't be easy to workaround, am I right?
Anyway, awesome plugin, good work man.
from vim-textobj-user.
Oops, previous comment was mine, but I forgot that I'm using different GH account :)
from vim-textobj-user.
Btw, I also tried to change text between pipes "|" using "ci|" but pipe character isn't allowed unfortunately. But I suspect this won't be easy to workaround, am I right?
It's not hard as you imagined. Use the following:
call textobj#user#plugin('handyobjects', {
\ 'pipes_a': {
\ 'select': 'a<Bar>',
\ '*pattern*': '|[^_]*|'
\ },
\ 'pipes_i': {
\ 'select': 'i<Bar>',
\ '*pattern*': '|\zs[^_]\+\ze|'
\ },
\ })
I suspect that you wrote a|
/i|
for select
. It doesn't work. You have to wrote a<Bar>
/i<Bar>
instead.
Because |
, the pipe character is used to separate multiple commands in a line. Essentially, textobj-user just executes a bunch of :map
commands. For example, if a|
is given for select
, textobj-user will execute :map
commands like the following:
vnoremap a| (((magical stuff to select a specific text)))
onoremap a| (((magical stuff to select a specific text)))
...
But Vim interprets the above commands as follows:
vnoremap a
(((magical stuff to select a specific text)))
onoremap a
(((magical stuff to select a specific text)))
...
So it doesn't work.
from vim-textobj-user.
Thanks! You made my day ;)
from vim-textobj-user.
I had the same problem making a regex matcher. I am completely astounded no one has made a vim-textobj-regex yet. I was able to get it working with this:
call textobj#user#plugin('regex', {
\ 'regex_a': {
\ 'select': 'a/',
\ '*pattern*': '\/.*\/[gicm]\{0,}'
\ },
\ 'regex_i': {
\ 'select': 'i/',
\ '*pattern*': '\/\zs.\+\ze\/'
\ },
\ })
I don't know if it's worthy to make a repo just for that, but maybe it is just so people can find it.
from vim-textobj-user.
@delvarworld make it a repo!
from vim-textobj-user.
Related Issues (20)
- '< and '> are not restored with right unit HOT 5
- vim-surround not working with custom objects HOT 5
- Unknown function: textobj#user#plugin in Neovim 0.2.0
- How do I install this? HOT 2
- Select text-object not strictly under the cursor HOT 2
- Feature request: Enable to define user textobj for creating surroundings HOT 3
- Suggestion: Use xmap instead of vmap HOT 2
- Textobject not behaving as expected.
- Missing LICENSE file HOT 1
- '< '> overwritten HOT 3
- Allow other modifiers HOT 2
- Buffer local textobj mappings in documentation HOT 3
- Add doc/tags to .gitignore (based on Vim 8 documentation) HOT 1
- Support passing funcrefs to textobj#user#select and textobj#user#move?
- Matching a single newline results in unexpected behaviour
- Doesn't jump to nearest paired text object
- Apply command to each line in "range" / selection HOT 2
- Native option for blackhole register HOT 2
- Support empty text objects
- Adding a FOSS license HOT 1
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-textobj-user.