6 ms·
Maybe learn how to grok vim?
by siissussjskk 9y ago
Maybe learn how to grok vim?
- lighthazard 9y agoHow do I select Lines 3, 16, 39, 50, 230, 420, 1302, and 2300 at random columns of my needs? With a mouse, I can cntrl/cmd + click the line I am interested in, wherever I am interested, and do any manipulation I want. Can VIM do this easily? I've never tried.
- bananicorn 9y agoMaybe you're looking for visual block mode?[0] Or the multi-cursor plugin[1]? I haven't tried the latter, ut I really like visual block mode for certain things. It's amazing how much new stuff I learn about vim every day... And I'm nowhere near done :) [0]https://stackoverflow.com/questions/21806168/vim-use-ctrl-q-for-visual-block-mode-in-vim-gnome#21808952 https://stackoverflow.com/questions/21806168/vim-use-ctrl-q-... [1]https://github.com/terryma/vim-multiple-cursors https://github.com/terryma/vim-multiple-cursors
- aoloe 9y agoit depends on what you want to do... but my general reflex is: - go to line 3 - start recording a temporary macro ("qq" in my habits) - do the editing - stop the macro ("q") - go to the line 16 with 16gg and reply the macro with @q - 39gg@q - 50gg@q - ...
- bananicorn 9y agothis. Macros are something I've never used in other editors, but in vim they're simply... fun to use. Well, if used for the right purpose.
- deleted 9y ago[deleted]
- dredmorbius 9y agoAnd, in all earnestness: why are you doing that? Is there something about those specific line numbers intrinsically? Is there a pattern or specific text on those lines? Is there a relationship to surrounding text, above or below? The great thing about vim, or a set of similar tools (ed, ex, sed, awk, perl, cut) is that you can address the text in terms of the text itself. Search by text or regex, move within a line or between lines. Replace text or modify elements, preserving some and changing others. Or, if I know in advance that I've got to deal with the 8 specific lines mentioned but without otherwise addressible context: 3G <edit stuff> 16G <edit stuff> ... 2300G <edit stuff>. That's not elegant, but it's doable and fast.
- lighthazard 9y agoLine numbers were irrelevant, just a set of random numbers. There is no pattern to the text (say it's a set of words that needs to be edited to become the same). I guess this is more related to working with large blocks of text rather than code. Someone mentioned macros, I'm going to give that shot.
- dredmorbius 9y agoWhat's the characteristc of the text and how do you identify it? Again, search, paragraph and sentence navigation, and word nav are intrinsic to vim, and fast. If you know what you're looking for, "/<pattern>" and you're there. With incremental search ("set ic" in your ~/.vimrc) thats often a very few keystrokes.
- ATsch 9y agoWhat are you trying to accomplish with this? If you are trying to replace multiple cursors, the approach would be very different. What I'd do is record a macro for the edit on one line into q, and then apply it to all relevant lines with a regex, e.g. g/regex/norm @q
- mercer 9y agoSurely you'd agree that a mouse as an interface can provide benefit even in the context of a text editor?
- ATsch 9y agoSure, but the question is if the physical and mental context-switch is worth this benefit. I'd say that in editors with a sufficiently expressive keyboard interface like vim, it is not. One thing I still find myself doing in vim is using the scroll wheel. Browsing and editing is a context switch anyway and I think scroll wheels express scrolling a lot better than keyboards ever can.
- mercer 9y agoFair enough. I would definitely err on the side of vim when it comes to the benefits of staying within vim's 'mental model', because I do agree the context-switch does matter. Furthermore, the fact that all my vim-context keypresses can be stored as a 'macro' in itself has provided enough of a productivity increase to make it all worth it. And this is even the case in less-than-perfect vim emulators. And I do agree that for some things, scrolling and perhaps 'exploring' in general being a big one, a mouse can be worth the context switch.
- shangxiao 9y agosiisussjsk might've been referring to doing a quick check to see if vim supports mouse as an interface… which it does.