Comments (11)
Asked vim_dev: https://groups.google.com/d/topic/vim_dev/EA0jA9xLMsQ/discussion
from vim-textobj-user.
Idea: Is it possible to replace the :normal v
trick with some combination including v:operator
?
from vim-textobj-user.
Kana, while investigating this issue I have found some kind of workaround. It's also used in matchit.vim.
Change the first line in the script above to
onoremap iw v:<C-u>call Select()<Return>
Note the v
. Now .
works correctly in the normal case. Only after delfunction
the behaviour becomes strange (deletes one character).
from vim-textobj-user.
onoremap iw v:<C-u>call Select()<Return>
Thank you for the trick. And thank you also for great help on the thread in vim_dev. I wonder why the trick enables repeatability...
However, I don't want to use it. Because:
o_v
is to force an operation to work characterwise, or to toggle inclusive/exclusive. Using the trick disallows users to use these features. Though Vim currently doesn't provide API to detecto_v
,o_V
ando_CTRL-V
from Vim script, but it's not difficult to add such API. I already proposed a patch, but it is not included yet.- vim-textobj-user allows custom text objects to cancel the current operation. If a custom text object is invoked in Operator-pending mode and the text object couldn't find a valid target, vim-textobj-user doesn't move the cursor to target no text. This behavior can be emulated with the following key sequence:
d:<Return>
. But the trick disallows to cancel the current operation. Ifo_v
is given to the current operator and the cursor doesn't move, a character under the cursor is treated as a target of the operator. For example,dv:<Return>
delete a character under the cursor.
Repeatability is important, but cancelability is also important. Using the trick sacrifices cancelability, and it breaks backward compatibility of vim-textobj-user based plugins. And the repeatability problem seems to be caused by the internal of Vim, as you described to the thread in vim_dev. Therefore, I don't want to use the trick directly.
from vim-textobj-user.
What about Tim Pope's vim-repeat?
from vim-textobj-user.
@wellle This has been discussed at length, e.g.
from vim-textobj-user.
Oh that's very interesting. Thank you for your work on this issue!
from vim-textobj-user.
By the way: I believe this issue has been resolved in Vim 7.3.918.
from vim-textobj-user.
Yes that's true, it's working
from vim-textobj-user.
I've also confirmed that the issue was resolved in Vim 7.3.918.
@glts, thank you for the great help at vim_dev.
from vim-textobj-user.
Thank you.
from vim-textobj-user.
Related Issues (20)
- User text-objects reference HOT 1
- <SNR>52_(restore-marks) left in buffer HOT 6
- '< 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
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.