Vim Can Save You Hours Of Work

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 พ.ย. 2024

ความคิดเห็น • 812

  • @klimenkodr123
    @klimenkodr123 3 ปีที่แล้ว +449

    > Has relative line numbers enabled
    > Still does the math to calculate lines

    • @QW3RTYUU
      @QW3RTYUU 3 ปีที่แล้ว +11

      is this 4chan

    • @completelyandutterly001
      @completelyandutterly001 3 ปีที่แล้ว +11

      @@QW3RTYUU Yes 🙂

    • @alejomakevids
      @alejomakevids 3 ปีที่แล้ว +18

      @@QW3RTYUU No this is Patrick.

    • @mariocamspam72
      @mariocamspam72 3 ปีที่แล้ว

      @@alejomakevids HAHAHA XDD SO FUNNY meme from 2016

    • @dewut420
      @dewut420 3 ปีที่แล้ว +7

      @@mariocamspam72 imagine typing how you laugh

  • @myview9923
    @myview9923 3 ปีที่แล้ว +524

    I think learning a new programming language is easier than using the editor

    • @scoutbro9034
      @scoutbro9034 3 ปีที่แล้ว +8

      False I need to go bathroom, lol

    • @myview9923
      @myview9923 3 ปีที่แล้ว +7

      @@scoutbro9034 of course you can execute a macro and go to bathroom..

    • @myview9923
      @myview9923 3 ปีที่แล้ว +4

      @Myungsoo Ya.. they must make a vim OS. Being an editor is a shame..

    • @radioactivebob1
      @radioactivebob1 3 ปีที่แล้ว +20

      the fact you have to learn and reseach how to use this editor is a big killer for me, just not worth it.

    • @heroe1486
      @heroe1486 3 ปีที่แล้ว +29

      @@radioactivebob1 You're not required to use 100/100 of vim key bindings and commands. You're still be more productive with the basics than nothing.
      + Taking some time to learn something that will save you time/gives you advantages afterward is an investment, that's what you've probably done when switching from windows/macOs to GNU/Linux or from a DE to a minimal tiling windows manager

  • @almosthelpless9374
    @almosthelpless9374 3 ปีที่แล้ว +402

    Not having to touch your mouse to use a text editor is underrated. Vim is great for laptops!

    • @AlessandroBottoni
      @AlessandroBottoni 3 ปีที่แล้ว +38

      You can also use most, if not all, of the existing GUI-based editors and IDEs without touching the mouse: most of them support a large, powerful and configurable set of keyboard shortcuts (that I do not use...).

    • @ashwin372
      @ashwin372 3 ปีที่แล้ว

      Its good for desktops too.

    • @woouinluigh
      @woouinluigh 3 ปีที่แล้ว

      It was a nightmare on smartphones though...
      still, not much worse than anything else on a smartphone

    • @matthewstott3493
      @matthewstott3493 3 ปีที่แล้ว

      @@woouinluigh Well unless you have a bluetooth keyboard paired with a tablet or smartphone. Which I've used with tmux / vim a great deal. Actually Mosh + iOS Blink works very well with an unstable cellular connection while on a train. Mosh replaces SSH and provides a much more responsive feel on poor connections. mosh.org simple roaming with session state sync with extremely low latency and local echo so you are not waiting on SSH to catch up.

    • @phillipmartin3910
      @phillipmartin3910 3 ปีที่แล้ว +3

      @@peterjansen4826 Graphical text editors and ide's have been feature equal with Vim and Emacs for decades. There's no feature reason to use Vim over Sublime, Atom, Geany or Kwrite.

  • @caleb.39
    @caleb.39 3 ปีที่แล้ว +45

    I like how genuine dt is, when he makes a mistake he doesn´t edit it out, he shows himself learning it along with us

    • @windows99
      @windows99 ปีที่แล้ว

      What mistake?

    • @samuelitooooo
      @samuelitooooo ปีที่แล้ว

      I appreciate the genuineness, but it does create friction as I absorb and learn

  • @andrewfeldman6764
    @andrewfeldman6764 3 ปีที่แล้ว +195

    Of all the examples that were given, I’d either never use it, or I can do it faster in sublime. I used Vim for 6 months and I still went back to Sublime. I think it just comes down to personal workflow preference

    • @paolo.iulita
      @paolo.iulita 3 ปีที่แล้ว +28

      Copy / Pasting a piece of my comment: "IMHO with the introduction of multi-cursor editors it's time to move on."

    • @johannesberger8641
      @johannesberger8641 3 ปีที่แล้ว +10

      ​@@paolo.iulita Uh, vim can do that. So.

    • @shreym03
      @shreym03 3 ปีที่แล้ว +4

      I think a mix of vim and Sublime could actually be a very good workflow. I do that with VSCode and I know there's a vim extension for Sublime. Why don't you give it a try

    • @tzimmermann
      @tzimmermann 3 ปีที่แล้ว +19

      That's what I was going to say. Each time someone gives me an example supposed to show me Vim's superiority, I can come up with a simpler way to do the same thing in Sublime without having to memorize tons of keybindings and switch mode a bunch of times, and often it happens to be faster.

    • @ricardo_valerio
      @ricardo_valerio 3 ปีที่แล้ว

      same

  • @balmar3
    @balmar3 3 ปีที่แล้ว +44

    11:22 At that point you can just hit I" and that will do the job. Similarly, to add to the end of each line select in block visual mode, then hit $ and A". No need for all that command mode then normal mode trickery.

    • @MrLaysoun
      @MrLaysoun 3 ปีที่แล้ว +6

      you can also use block visual mode with ctrl+v and then hit shift+i and it will insert everywhere

    • @satibel
      @satibel 3 ปีที่แล้ว

      you can also use a regex.

    • @conceptrat
      @conceptrat 3 ปีที่แล้ว

      That same method could've been used to delete (x) the ” at the end of the line with a comma.

  • @kaosfang6907
    @kaosfang6907 3 ปีที่แล้ว +44

    How have I been using Vim keybindings for almost 2 years and i didn't know about :ab that would have been beyond useful many times.
    Amazing video DT keep up the amazing content.

  • @jenowin7269
    @jenowin7269 3 ปีที่แล้ว +7

    nnoremap :move +1
    nnoremap :move -2
    alt+up/down to move the current line vertically in a classic way
    vnoremap :move '>+1gv=gv
    vnoremap :move '

  • @Simi3x
    @Simi3x 3 ปีที่แล้ว +73

    Feels like learning Regex with extra steps.

    • @OggerFN
      @OggerFN 3 ปีที่แล้ว +3

      yes

    • @aphleesegurtra2820
      @aphleesegurtra2820 3 ปีที่แล้ว +2

      You must mean when NOT using VIM, I hope...

  • @Biggybi
    @Biggybi 3 ปีที่แล้ว +7

    A few notes:
    - `g;` goes back to the last modification, while `` would be the last cursor position
    - to indent a paragraph, you can use `>ap` (`ap` is the paragraph text object)
    - to remove the `"` in this context : `vap :s/"//g` (select around paragraph then replace '"' with nothing, `g` to get every match in the line)
    Good work though, looking forward for more Vim vids !

  • @zomakaja
    @zomakaja 3 ปีที่แล้ว +61

    Most vim videos have the same info. But I actually learned something new in the video

    • @jacksonsingleton
      @jacksonsingleton 3 ปีที่แล้ว +2

      There's so much to it. There's always more to learn!

    • @dipi71
      @dipi71 3 ปีที่แล้ว +2

      Clouldn't agree more. Just discovered diff-mode editing, visual-block editing, macros, built-in functions like strchars() and getline() in custom mappings and the power of "very" magic regular expressions during the recent decade. For example, removing/adding those quote marks would be one thing I'd use regexp's for, rather than macros.

    • @GooogleGoglee
      @GooogleGoglee 3 ปีที่แล้ว

      After all it is all you need...

    • @RzariRzari
      @RzariRzari 3 ปีที่แล้ว +2

      When you have to go through many videos to learn how to edit text

    • @jacksonsingleton
      @jacksonsingleton 3 ปีที่แล้ว

      @@RzariRzari optimization baaabyyyy

  • @Simi3x
    @Simi3x 3 ปีที่แล้ว +46

    Honestly the IDE's I'm using are all capable of selecting multiple rows, replacing words and swapping lines. If you're comparing Windows Editor to vim, it's obviously more capable of doing stuff. Haven't yet found a feature convincing me to learn vim.

    • @wuppi
      @wuppi 3 ปีที่แล้ว +4

      I mainly just like vim's keybinds, they're quick and easy to access. Often you have the same editing power in your IDE of choice with vim bindings as in vim itself (some extensions even use vim as a backend).

    • @nomathic7672
      @nomathic7672 3 ปีที่แล้ว +5

      You can define more robust keybind and commands with vim than any other editor.
      IDEs are only more useful when you're using their features like debugging with realtime memory information graphs.
      If you're just editing code then there's literally no reason to use an IDE.

    • @iskamag
      @iskamag 2 ปีที่แล้ว +1

      Can your IDE edit multiple configurations from one?

    • @christophernuzzi2780
      @christophernuzzi2780 2 ปีที่แล้ว +3

      @@iskamag Who cares?

    • @iskamag
      @iskamag 2 ปีที่แล้ว +7

      @@christophernuzzi2780 I do, it makes my life so much easier.

  • @atps
    @atps 3 ปีที่แล้ว +12

    I'm a relatively new vim user. I've passed the initial shock (that's my first modal editor) and the more I use it, the more I like it. On the positive side I love the combination between the vim + vimv in the case of bulk renaming. On the negative side I have a lot more to learn in order to properly use it with another keyboard layouts, which is not very easy if not configured correctly.

    • @Lennyp4
      @Lennyp4 ปีที่แล้ว +1

      i’ve been using vim for years on a dvorak layout pretty much stock. by sheer nature of using vim as long as i have my vimrc has ballooned to be probably a couple hundred lines long but i try not to mess with the default bindings too much!

  • @migue7490
    @migue7490 3 ปีที่แล้ว +34

    I feel so comfortable using Vim and I realized that I know only 0.01% of its features.
    To delete ending " instead of macros I prefer %s/"$//g, and I instead of doing "norm" in block mode I use "I", or "A" directly, I don't know if what I do works in all cases. Great vid!

    • @umka7536
      @umka7536 3 ปีที่แล้ว +2

      :11,+25 norm 0x$x

    • @phillipmartin3910
      @phillipmartin3910 3 ปีที่แล้ว +2

      That's why I don't understand why guys spend all this time learning Vim when they're never going to use most of it's features. It obvious most are just following the heard and doing what's cool. It's like the sudden popularity of tiling widow managers, it's a fad that will fade.

    • @jacderida
      @jacderida 3 ปีที่แล้ว +11

      @@phillipmartin3910 Vim will be 30 years old this year, and vi goes back to the 70s. That's a pretty long fad.
      I've been using it as my main editor now for 6 years.

    • @umka7536
      @umka7536 3 ปีที่แล้ว +2

      @@phillipmartin3910 Because you want to be efficient and non-distracted. VIM boosts my productivity.

    • @CristiNeagu
      @CristiNeagu 3 ปีที่แล้ว +3

      @@umka7536 Ah yes. I so hate when VS Code makes me press End to move all my cursors to the end of the line. Typing in %s/"$//g is so much faster and makes so much more sense.

  • @rogerpenrose1368
    @rogerpenrose1368 3 ปีที่แล้ว +56

    I use just vim, but everytime I see someone speaking of advantages of vim, clearly they haven't spend a second loooking up the documentation of other editors.
    Every code editor has a lot of features like those of vim.

    • @tanmaydeshpande
      @tanmaydeshpande 3 ปีที่แล้ว +2

      I mean not really. I use neovim on a daily basis as part of my school classes.
      I've run macros more times than I can count and features like that are simply unavailable in other editors.
      Sure there are extensions to do stuff like that but then the other editors are already so painfully slow in starting up

    • @rogerpenrose1368
      @rogerpenrose1368 3 ปีที่แล้ว +5

      @@tanmaydeshpande Yeah, I mean, "a lot" of features, not all. Like, all (or most of) the stuff showed in this video can easily be done in vscode or sublime. But, for example, the integration between vim and the shell is something unique. Vim is awesome for a lot of reasons, but not because you can jump to a line or delete 3 words with a few keystrokes.

    • @tanmaydeshpande
      @tanmaydeshpande 3 ปีที่แล้ว +1

      @@rogerpenrose1368 eh I think vim is powerful for that as well. Like in normal editors, you can scroll using the mouse or the pgup or pgdn buttons.
      In vim you don't need to touch anything apart from your home row for navigation.
      Simply press number+j or k and you jump so many lines at once.
      And with relative numbering it's even more easy to do stuff like that

    • @rogerpenrose1368
      @rogerpenrose1368 3 ปีที่แล้ว +1

      ​ @Tanmay Deshpande Yeah... this is an advantage...

    • @vaibhavppandey
      @vaibhavppandey 3 ปีที่แล้ว

      @@tanmaydeshpande bruh you are the same guy on some other channel saying "I don't know What is this fuss about Vim" lol

  • @bobwright8000
    @bobwright8000 3 ปีที่แล้ว +3

    Thanks DT. Vim is a powerful editor; I have used it for years. The better you know it, the more time you can save. Great job on the video.

  • @pikzel
    @pikzel 3 ปีที่แล้ว +10

    As a text editor, vim is great. But I save much more time with an IDE like the ones from Jetbrains when it comes to safe refactoring, debugging, code analysis, etc. I never have to leave the IDE to do anything. And you can even use vim key bindings in them.

  • @IlyesSem
    @IlyesSem 3 ปีที่แล้ว +6

    Hi !
    A few more tips :
    Going back to the last cursor place - g; -
    but you can also browse your location stack with - C^O - (backward) and - C^I - (forward)
    Indent a whole paragraph (in your case here) : - >ip -
    (no need to count, and you can stay in normal mode - even less painful !)
    Adding quotes for each line :
    select lines, go in command mode and type - norm yss" - (which relies on tpope's vim-surround plugin)
    (6 less seconds wasted !)
    For the sudo trick, if you can't remeber it there's chrisbra's SudoEdit plugin which does this great - :SudoWrite -
    You can edit multiple files (vim file2 file2 file3), record macro like DT did here and apply it to each file ( - w | n - in command mode to write and go to the next file)
    With a shell you also can record your macro and do this :
    # for i in file1 file2 file3; do vim $i -c "norm @o" -c "wq"; done # (o is the name of my macro here)
    Thank's DT for these tips ! I hope mine are helping you too !

    • @miallo
      @miallo 3 ปีที่แล้ว +1

      There is no need to reselect the same block again if you want to perform another command, '< and '> will remember the last selected region. And if you really want to select the same region again, just type gv and for changing the `o`ther end of the selection to fine-tune it, just press o
      If there was whitespace after the last character and you wanted to move the cursor there instead of the very end, there is also g_

  • @GooogleGoglee
    @GooogleGoglee 3 ปีที่แล้ว +183

    The right title should be "Vim can save you seconds of works in a day"

    • @neeko319
      @neeko319 3 ปีที่แล้ว +17

      @Henrique Borges aka other text editors save you much more than a couple hours.

    • @johannesberger8641
      @johannesberger8641 3 ปีที่แล้ว +6

      @@alexisk1615 Only in the first months. Then it pays off immeasurably

    • @CristiNeagu
      @CristiNeagu 3 ปีที่แล้ว

      ... if you're coming from Notepad.

    • @CristiNeagu
      @CristiNeagu 3 ปีที่แล้ว +2

      @Henrique Borges True. Vim wasn't made for me. It was made for incredibly old and outdated operating systems, with weird and convoluted control schemes, and primitive input methods. As for me, i prefer efficiency and ease of use over stubborn nostalgia against all reason.

    • @CristiNeagu
      @CristiNeagu 3 ปีที่แล้ว +3

      @Henrique Borges As expected, you're still living in 2010. We have VS Codium here in 2021.

  • @ManthaarJanyaro
    @ManthaarJanyaro 3 ปีที่แล้ว +67

    I see no reason why I should change my text editor...

  • @jandrews377
    @jandrews377 3 ปีที่แล้ว +12

    Hi Derek, love your work. I am fully sold on 'vim', however, I think its a bit disingenuous suggesting that find-replace can take minutes or hours. Even the most basic text editors provide find/replace. The macros feature is definitely a time-saver though. Good vid.

  • @neoplumes
    @neoplumes 3 ปีที่แล้ว +11

    Vs code can do cutting/pasting lines, moving lines up/down, navigating to the end/beginning of the document, selecting multiple lines at once, and regex search/replace. All without the mouse... I knew VIM had a hardcore following. It's good to know I'm not missing out with these specific examples of why it's so powerful.

    • @kevinfromthebase1335
      @kevinfromthebase1335 3 ปีที่แล้ว +2

      He didn't seem to touch on text objects, which is a very powerful vim feature. The power of vim is also in its ubiquity; its gonna be there on any machine you ssh into and any container you enter into. VScode is excellent but I think the main advantages it has over pure vim is the built in debugger and some of the refactoring tools. You can pimp out vim to do pretty much everything vscode does, but the lack of the debugger is an issue

    • @heroe1486
      @heroe1486 3 ปีที่แล้ว +2

      Sorry man but that's not the case . He's just showing a few percentage of vim capabilities on this video, he would need 10 hours to show what you can do with vim.
      It's not still one of the most popular text editor along devs ( 25/100 according to SO ) for nothing even in the GUI age.
      With coc.nvim we don't even need vscode anymore.

  • @zeocamo
    @zeocamo 3 ปีที่แล้ว +5

    20:04 if you do this a lot you can add it to your init.vim or vimrc just add the following "cmap w!! w !sudo tee > /dev/null %"
    and if you write :w!! and enter it will run this command, it has been in my config for many many years now and it just save me.

  • @AlessandroBottoni
    @AlessandroBottoni 3 ปีที่แล้ว +9

    After having developed software for more than twenty years, and after having used all of the existing editor and IDEs (including Eclipse, NetBeans, SublimeText, Visual Studio Code, Code::Blocks, Qt Creator, Visual Studio, Atom, etc.), I still CANNOT understand what people see in VI and VIM (That I know and used). History declared a winner a long time ago and it was GUI-based software: it does not make any sense using your memory to store the keyboard shortcuts of CLI-oriented programs when you can have a menu and a sophisticated GUI at your fingertip. I do not even use line editors for configuring servers from remote, anymore. I just use the various "control panels" supplied by the host.

  • @gasparfreak
    @gasparfreak 3 ปีที่แล้ว +15

    Used Vim for a long time, but vscode is just better for my work. Best thing microsoft did.

    • @estring69
      @estring69 2 ปีที่แล้ว +3

      You can emulate Vim in vscode. So definite win there....

  • @mattrobinson513
    @mattrobinson513 3 ปีที่แล้ว +18

    Why use vim when you can use feature rich nano.

    • @alephanull1953
      @alephanull1953 3 ปีที่แล้ว +1

      Why use nano when you can use minimal Ed

    • @tanmaydeshpande
      @tanmaydeshpande 3 ปีที่แล้ว +1

      @@alephanull1953 why use ed when you can simply write code in binary on paper

  • @it_is_ni
    @it_is_ni 3 ปีที่แล้ว +15

    I've used Vim for a couple year, now using VSCode.
    Vim is great for navigating, selecting and manipulating text.
    Deep configuration and extending Vim was hard, even after a couple years.
    VSCode is very comfortable. Extensions mostly "just work". I really love the command palette.

    • @heroe1486
      @heroe1486 3 ปีที่แล้ว +1

      coc.nvim make things "just works" ( even if I don't like that expression) too, without abandoning all the vim goodness not present on vscode ( even with VscodeVim )

    • @ddotmars
      @ddotmars ปีที่แล้ว

      @@heroe1486 only issue coc.nvim is slow as hell because it uses node :( such a shame

    • @vikingthedude
      @vikingthedude ปีที่แล้ว

      We got LSP and treesitter boys. The future is bright

  • @timoteostation
    @timoteostation 3 ปีที่แล้ว +5

    One of the most useful tricks I like in vim is the ":%" function. I can search and replace portions of text using regular expressions. Example:
    :%s/apple/orange/g
    It will replaces all instances of "apple" for "orange" on the entire document. If you are expert in regular expressions, you can do a lot of things with this feature.

    • @user-lb1ib8rz4h
      @user-lb1ib8rz4h 2 ปีที่แล้ว

      fyi, it's the s doing the heavy lifting, not %
      % is not a substitution function, it is a range specifying the entire file. you can use line numbers too for the range. s means substitute, and g means globally within a line (part of regex syntax)
      so for example to remove all quotes from lines 10-43:
      :10,43s/"//g

    • @timoteostation
      @timoteostation 2 ปีที่แล้ว

      @@user-lb1ib8rz4h another trick that I like to use is to remove specific line using a pattern.
      :%/apple/d
      It removes any line containing the "apple" pattern.
      Sadly I'm not so good with regular expressions, but the :% function in vim is very useful.

  • @tarpan360
    @tarpan360 3 ปีที่แล้ว +10

    The downside is that you have to remember a ton of shortcuts. It's not a problem if you use them regularly, but the rare ones take time to recall - it's easier and faster in other text editors (you just do it with the mouse or right-click for a context menu).
    Besides, I really need a color-picker and I have never managed to make it work reliably in vim.

    • @vlatkosurlan545
      @vlatkosurlan545 ปีที่แล้ว

      Mostly you don't remember anything. They're just mnemonics mostly:
      Delete Inside Word: diw (it will delete the word where the cursor is inside)
      Select To

  • @matheuslemos1288
    @matheuslemos1288 3 ปีที่แล้ว +9

    that last command will save me hours of editing /etc config files, thanks dt

    • @magnusanderson6681
      @magnusanderson6681 3 ปีที่แล้ว +1

      What I have done is save it as a random file under /temp, then sudo mv. But yeah thats a much better solution
      Actually thats what I did in nano, I don't know how to save a file as something in vim. Time to duck it

  • @CryptoDefender
    @CryptoDefender 3 ปีที่แล้ว

    Must be one of the most practical and easy to watch overviews of Vim out there on TH-cam! Great content as usual DT. Many thanks.

  • @txemaotero3250
    @txemaotero3250 2 ปีที่แล้ว

    After so many years using vim I don't know how but I am still learning new stuffs, amazing. I didn't know about abbreviations. Thank you for the content DT! Keep going!!

  • @cerocero2817
    @cerocero2817 3 ปีที่แล้ว +2

    I will probably end up learning vim anyway, but I find it a bit discoursging how almost everytime someone comes telling how vim is so superior to other programs and it will save you thousands of hours they end up giving some examples that could essily be done in typical programs just as fast, like the example about deleting the double quotes, I could do that in a couple seconds in any editor with multicursor, faster than using a macro.
    They are just as ignorant about standard editors as we are about Vim.

  • @f23anone82
    @f23anone82 3 ปีที่แล้ว +1

    What I love the most about VIM, is that is has unlimited depth. Literally every video I saw on VIM has this minor tips and tricks which you can incorporate into own workflow

    • @heroe1486
      @heroe1486 3 ปีที่แล้ว

      Meh " but [nano,atom,sublime] can do EVERYTHING vim does faster and in a more intuitive way "

  • @AFKay-wh6qh
    @AFKay-wh6qh 3 ปีที่แล้ว +22

    The way you pronounce "Vim" is amazing

    • @zeroone171
      @zeroone171 3 ปีที่แล้ว +5

      Vyoom

    • @smuecke
      @smuecke 3 ปีที่แล้ว +4

      Viəm

  • @vitiok78
    @vitiok78 3 ปีที่แล้ว +6

    I think instead of learning these new strange bindings I can just learn regular expressions syntax that is used almost everywhere, so I won't forget it, and with the help of these expressions I can do almost all these tricks in good regular text editor

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 3 ปีที่แล้ว +3

      Quoth Jamie Zawinski: “A programmer has a problem, and thinks: “I know-I’ll use a regular expression to solve it”. Now they have _two_ problems.”

    • @vitiok78
      @vitiok78 3 ปีที่แล้ว

      @@lawrencedoliveiro9104 Actually, simple regular expressions are very easy. My point is that I as a programmer already know them at the level needed for searching in the text editor. I don't need to learn more vim's spells

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 3 ปีที่แล้ว

      @@vitiok78 It’s not either/or.

    • @user-lb1ib8rz4h
      @user-lb1ib8rz4h 2 ปีที่แล้ว

      @@vitiok78 you can use regex in vim too lol
      :10,43s/"//g
      would've removed all the quotes in those specified lines too

  • @Chiny_w_Pigulce
    @Chiny_w_Pigulce 3 ปีที่แล้ว +20

    You can easily swap lines in VSCode with alt+arrow key

    • @maybeanonymous6846
      @maybeanonymous6846 2 ปีที่แล้ว

      i have that shortcut on my vim config

    • @radol
      @radol 2 ปีที่แล้ว

      You can also select multiple lines holding alt and press end to move cursors to end of each line. I don't know how recording macros to do this is supposed to be superior

    • @hil449
      @hil449 2 ปีที่แล้ว

      @@radol oh really? How about selecting 2000 lines? Trust me, I've done that in sublime a couple years ago lmao if only I had knew vim

    • @harshpanchal5878
      @harshpanchal5878 2 ปีที่แล้ว

      @@maybeanonymous6846 how?? 🤔

    • @nodge9671
      @nodge9671 2 ปีที่แล้ว

      @@hil449 to select all of them hold alt then press page down.

  • @luck3949
    @luck3949 3 ปีที่แล้ว +23

    Vim can save you hours of work*
    *After spending tens of hours on configuring and learning vim.

    • @nomathic7672
      @nomathic7672 3 ปีที่แล้ว +5

      Well yeah, that's literally with everything. You can save hours of getting from point A to B by driving instead of walking but that would mean you have to spend more time learning how to drive and making money to pay for the car. It doesn't mean it still isn't fast.
      Learning vim isn't difficult if you are above 8 years old.

    • @luck3949
      @luck3949 3 ปีที่แล้ว

      @@nomathic7672 or you can just use jetbrains IDEs that are intuitive and work out of the box just fine.

    • @farpsy
      @farpsy 3 ปีที่แล้ว

      more like hundreds thousands

    • @nomathic7672
      @nomathic7672 3 ปีที่แล้ว +2

      @@luck3949 I never said that wasn't true. I'm saying that anything that increases efficiency can take time but that doesn't make it inefficient.
      Does that make sense to you?

    • @nomathic7672
      @nomathic7672 3 ปีที่แล้ว +1

      Honestly, developers that can't even understand their own points scare me.

  • @kylestubblefield3404
    @kylestubblefield3404 3 ปีที่แล้ว +3

    We received a 6000 page document that was supposed to be a spreadsheet, but it was sent in PDF. Worse that it was "Printed to PDF" which broke the columns up onto 3 different pages. it was a mess. I used a vim macro to solve this. It took me about 45 minutes create the macro and edit this document. learned something new here, I will have to use that !sudo tee % trick

  • @jumpyjacko
    @jumpyjacko 3 ปีที่แล้ว +4

    i learnt vim just little back. very good editor

  • @foxhoundz1x92
    @foxhoundz1x92 3 ปีที่แล้ว +5

    VSCode does everything mentioned in this video plus a ton more. That being said, I appreciate people that still use and maintain 30 year old software (40+ if you count vi).

    • @someonehere4380
      @someonehere4380 3 ปีที่แล้ว +1

      "plus a ton more" as if he mentioned everything you can do in vim

  • @Sofoslav
    @Sofoslav 3 ปีที่แล้ว +14

    From my experience Vim is just another editor. It has some powerful editing mechanisms, but most of them (or maybe all of them) are present in other editors which are much easier to use.

  • @mohityadav21
    @mohityadav21 2 ปีที่แล้ว +1

    It takes more time/keystrokes and remembering than simple vs-code multi-cursor approach. But it seems more powerful.

  • @Omikronik
    @Omikronik 3 ปีที่แล้ว +2

    My favourite vim commands are o and O. I hated having to hold left or right arrow key and press enter to open a new line above or below.

    • @SoundToxin
      @SoundToxin 3 ปีที่แล้ว

      Yes, I love how many actions can work from anywhere. Same with dd instead of having to go to the start or end of the line and then doing shift-home or shift-end and backspace.

  • @SandboxGeneral
    @SandboxGeneral 3 ปีที่แล้ว +4

    Sweet. Need more VIM videos, please!

    • @magnusanderson6681
      @magnusanderson6681 3 ปีที่แล้ว

      See th-cam.com/video/XA2WjJbmmoM/w-d-xo.html I need to rewatch that now that I actually use vim

  • @sundarbe
    @sundarbe 3 ปีที่แล้ว +2

    I’ve been using vim for past 20 years and never used abbreviations command! Vim multiple files opened as buffers can do wonders.

  • @noferblatz
    @noferblatz 3 ปีที่แล้ว +1

    Maybe I don't understand what you're doing, but you don't need to type colon before slash to search. In normal mode, you can simply type the slash key. Done this way, it will search from the beginning of the document.

  • @christophernuzzi2780
    @christophernuzzi2780 2 ปีที่แล้ว +1

    And what is so great about "working faster" anyway? If a mouse slows me down a little (which it doesn't), so what?

    • @nihancj
      @nihancj 2 ปีที่แล้ว

      The great thing about "working faster" is that it's faster.

  • @timfreedman873
    @timfreedman873 3 ปีที่แล้ว

    Another great Vim video DT. You make learning Vim easier, thanks mate.

  • @LeCockroach
    @LeCockroach 3 ปีที่แล้ว

    I love the idea and power of VIM and vim clones, and I tried them at least 5 times in the past and in the end went back to my previous editor or whatever. It feels like you need a lifetime to learn the basics and then you discover a plugin that possibly improves your workflow and you need to relearn everything again.
    But it's true that you can (once you master it) do almost anything very fast.
    Useful video!!

  • @TheAnffer
    @TheAnffer 3 ปีที่แล้ว

    I've been using vim for maybe 3 months with a couple of plugins and it is awesome! This video added a couple of tools to my toolbox. Good video DT

  • @somnvm37
    @somnvm37 2 ปีที่แล้ว

    (vscode)
    1. moving lines of text
    well, you can use alt+up/down for moving lines, ctrl+shift+arrow to select a word shift+alt+up(or down) would make another cursor abve, then you can ctrl+l to select a line. And now you 10 lines with 12 keystrokes.
    2. looking for text and then moving: ctrl+f and alt+arrow. If you want to grab the next line also alt+shift+up(down)

  • @neeko319
    @neeko319 3 ปีที่แล้ว +9

    Every single one of these functions work at least twice as fast on vscode though..
    - Having to be the line above the one you're looking for sounds like a great feature!
    - Moving a line up or down would be faster but not with the example you gave. In vscode you can simple Alt + Arrow key to move it up or down one line at a time, this works with entire selections too. Having to write a line to move it one line is not faster at all. if it was 15-20+ lines then I'd maybe agree but simple cutting and pasting is faster.
    - Inserting or removing text from multiple lines. In vscode you simply Ctrl (shift on linux) + Alt + Arrow Key.
    Or even better, you can put a cursor at the end of each line by selecting the text you want to edit and simply press Alt + Shift + I (hit the Home key after if you want it to be at the start, or End to go back to the end of each line. ). No need to write your own scripts/macros and reinvent the wheel.
    The same way by having multiple cursors you can type in each of the lines, both at the start and the end, no need for a command.
    - Searching and Replacing text. A whole line of commands on Vim, Ctrl + Shift + H on vscode and simply press Shift + Enter afterwards to replace every instance of the search query, which both accept Regex aswell.
    - Creating abbreviations I have to agree is faster since you have to write it in json in vscode.
    But.. rather than pressing space, you press enter in vscode so it doesn't interfere with what you're writing and no need for a shortcut to NOT expand it.
    - VScode has an integrated terminal and you can open as many instances as you want, no need to enter command mode.
    tl;dr If you had to write your code inside the terminal then sure Vim is your best friend, but since you tried to throw shade on vscode at the end of the video, Vim has no chance. Every other text editor is much, faster and easier to learn.

    • @red-switch
      @red-switch 2 ปีที่แล้ว +1

      Also the indenting can be done by selecting text, and pressing tab.
      I think his examples were a bit poor. I can see myself using a VSCode extension to emulate some of the VIM keybindings (there is also the NeoVim VSCode integration), so that I can easily select text without having to use my mouse or constantly press control+shift+(right or left arrow) to select a bit of text. In Vim Mode, you would use v to enter visual mode, f and then the character you want to select it to, pressing semicolon as many times as necessary. In normal text editors, holding down control and shift while pressing the arrow keys is quite onerous to select text.
      Most editors are implementing Vim-like key bindings. There is PSReadline for PowerShell, Obsidian, VSCode as I mentioned earlier through a popular extension, Emacs through Evil mode (Spacemacs too), event Sublime has an extension for it.
      The problem I see with normal text editors is that as soon as you start shift-selecting text, you cannot search for text that you want end the selection with. Vim (and its variants) has an insert and normal mode to get around this, and in Emacs you can set a mark and then move the cursor to the desired position.

  • @javierdediegoguzman
    @javierdediegoguzman 3 ปีที่แล้ว +2

    What I think about vim is that, the time it saves doesn't matter as much as the "flow" it gives u, allowing u to do as u think, and not fight the program.

  • @phyzix_phyzix
    @phyzix_phyzix 3 ปีที่แล้ว

    That quote remove example in most editors: Drag select lines you want to remove quotes from. Use find/replace in selection quote with empty character. Hit enter. Literally takes 2 seconds. No need for a macro there.

  • @igorordecha
    @igorordecha 3 ปีที่แล้ว +2

    10:26 you can do that easily in vscode using multicursor.
    Just go to the beginning of line 11 and then shift+Alt+LMB on the beginning of line 42. Now press Del to remove all opening quotes. To remove closing quotes just press End Backspace. End key just moves every cursor to its end of line.
    I started learning vim today to maybeeee replace vscode in the future but this feature is so good and I use it so often I might not switch to vim as my main editor ever.

    • @Dizzle0318
      @Dizzle0318 3 ปีที่แล้ว +1

      Whatever works for you the best mate. That was not the fastest way to make that edit. Just a simple example. The vim way of doing that is different than the vs code way but I prefer the vim way and it's very fast. Also I can edit my macro with a few key strokes and reuse it for something else without having to do the other selections again. And if your really in love with that there is a vim plugin for it. But again it's personal preference and the vim way is still faster. That being said. Vscode users who knows there keybindings can also get it done. Less the tool and more the person. Whatever works 🎩👍 code on!

    • @pabloraindogarcia8107
      @pabloraindogarcia8107 ปีที่แล้ว

      There is also multicursor for vim

  • @yogxoth1959
    @yogxoth1959 3 ปีที่แล้ว +2

    Haven't watched your channel in awhile but that beard looks great on you!

  • @carstenschlegel6975
    @carstenschlegel6975 7 หลายเดือนก่อน

    Multiple Runs of a Macro (21@2) has two problems:
    First, if an error occurs (e.g. fxx - Find x, delete it - and there is no x in the line, e.g. with an empty line). The complete execution is terminated.
    The second problem: the macro must go to the next line manually (0j or similar).
    The "norm" command also helps here.
    The same macro WITHOUT going to the next line. Select all lines (or enter the line number e.g. line 10 to 20 with :10,20)
    And then :norm @2 (displayed :'

  • @daringcuteseal
    @daringcuteseal 3 ปีที่แล้ว +1

    "Can your editor compete with vim?"
    Me: Well yeah! my vim is great too. Of course it could compete with yours

  • @samu-1337
    @samu-1337 3 ปีที่แล้ว +10

    Vim is the way too go, use it full time now, learning new things all the time. I think vim + terminal is the real strength, no way vscode/webstorm can compete then.

    • @katech6020
      @katech6020 3 ปีที่แล้ว +2

      I am using vim extensions for vscode so I have the best in both worlds, neovim features and vscode features at the same time, and I will probably switch to this when it is ready: onivim.io/

    • @samu-1337
      @samu-1337 3 ปีที่แล้ว

      @@katech6020 do you have the tmux experience? Can you executive terminal commands inside vscode? Can you modify git aliases? And how "light" is your vscode?

    • @enricosevenfoldism
      @enricosevenfoldism 3 ปีที่แล้ว

      I really wanna use neovim or vim but its to difficult to config and the docs is seems like they assume u to have knowledge in programming language already, and im beginner so i use vscode with neovim keybind extension,

    • @samu-1337
      @samu-1337 3 ปีที่แล้ว

      @@enricosevenfoldism I'm 30 and have been in the "insert" mode everyday between 6 year's of age and 30, ofc it feels "easier" initially, but that's only a reflection of practiceed time, you need too switch your mindset to vim. Make it you'r way of life, i.e. add the vimium plugin to your browser..

    • @katech6020
      @katech6020 3 ปีที่แล้ว

      @@samu-1337 I use code-oss and it has an integrated terminal for commands, for extension I just have ones that make me work faster or improve things, I installed around 12. for light it is an electron app so you know what to expect. for git, it has a lot of features that I use a lot since I am a front end web dev, and I need to work with other devs many times and push code and manage conflicts...

  • @bellybooma
    @bellybooma 2 ปีที่แล้ว

    I still remember before I knew Vim doing archaic things like like highlighting text with the mouse, using the narrow keys to slowly navigate, etc.
    With Vim it's a completely new experience to text editing. And the best part about it, it's future proof. Vim has been around since the early 90s and Vim along with it's variants are still growing. Most modern text editors including sublime text, VSCode, Atom, etc. all have Vim plugins and/or packages.
    I'm still fairly new to Vim (been using it moderately for about 1 year) and still learning new tricks and shortcuts every day. Bonus points cause usually when peers see you use vim they are impressed or surprised.
    Cheers to Vim and all the Vim users out there!

  • @DieguitoJohnson
    @DieguitoJohnson 3 ปีที่แล้ว +1

    Almost every editor nowadays are super customizable. After using VIM for a time i only found that if you get used to not touching the mouse it can become very usefull and comfortable, but also if i wanted to i can customize VS Code in a way that i dont need the mice too.
    I think it comes to a personal opinion of what you like most. Anyways knowing a bit of VIM comes very handy when working on multiple remote linux machines and you need to edit.

    • @heroe1486
      @heroe1486 3 ปีที่แล้ว

      Remote + basically knowing vim key bindings gives you the ability to use any editor because most have vim extensions. Today Vscode is the hot product, a week ago it was atom, a month ago it was Sublime. You never know what the next "hot" thing would be, it's far more handy to know vim.
      + If you really dive into vim real capabilities no other text editor can compare tbh.
      Edit : And it's way faster than any Electron app, Vscode with large projects/files isn't close to neovim speed

  • @yiyatsen
    @yiyatsen 3 ปีที่แล้ว +13

    To move a line, I use alt+arrow key
    I don’t think VIM is any faster

    • @tsukiiiiiii
      @tsukiiiiiii 3 ปีที่แล้ว

      You can just use the arrow key, no problem. Or the traditional "h, j, k, l" key.

  • @atimholt
    @atimholt 3 ปีที่แล้ว +7

    I don't find macros to be nearly as useful as :global (“:g”) and :substitute (“:s”). To get rid of all the quotation marks, it's just :'

    • @kardashevr
      @kardashevr 3 ปีที่แล้ว

      yea, but what if you don't want to delete ALL quotation marks, but on a specific range of lines?

    • @atimholt
      @atimholt 3 ปีที่แล้ว

      @@kardashevr I usually use visual mode for that.

    • @kardashevr
      @kardashevr 3 ปีที่แล้ว

      @@atimholt cool!

    • @ChrisCox-wv7oo
      @ChrisCox-wv7oo 2 ปีที่แล้ว

      @@kardashevr:start_n,stop_ns///[modifiers]
      .,+5s will sub from current line to next 5
      -5,+5s will sub from prev 5 to next 5

  • @JoePerkins666
    @JoePerkins666 ปีที่แล้ว

    When you edit the array contents, half of the time you don't need to enter command mode, just press I and you can add the " at the start for example.

  • @Noname-wy4wy
    @Noname-wy4wy 3 ปีที่แล้ว +1

    Most of the people commenting learning VIM is useless, a waste of time or hard. They didn't understand really the power of it. It's not just looking like a wizard or wining hours of work. Even tho that's what this title says. It's reliability, interopability and comfort for someone who pass alot of it's time on a computer.
    You don't need to use VIM or clones to profit. VIM shortcuts are a standard in the computer world since 50 years. You can be sure almost every serious computer programs (especially for development) got them integrated or via an extension. And once you know them you can use them everywhere or almost.
    I switched to Android development recently, in like 2 mins I was like at home after installing one extension in Android Studio. Even to navigate in a web browser.
    And for those who didn't understand what a modal editor like vim is. It does mean you don't have to learn thousands of commands. But just how the letters interact with each others.
    You learn a new keycharacter you can mix it with everything you already know. If you have learned that the keyword "c" stands for change, "i" for inside and "w" for word... Then "ciw" is to replace what is in a word, and if 2 mins later you understand that the keycharacter "d" stands for delete then you already know that "diw" will delete what is inside the word. "C" to change a whole line ? then "you know "D" will delete it. Intuitive and not hard like almost every non users says. And to be really honest what you will learn in the vim tutorial which is finished in 30 mins is already way more than enough to use it correctly. And once in a while you will discover a knew keycharacter.
    To finish almost all the sorcery you have seen there, could have been done way faster way simpler...

  • @zamus3
    @zamus3 3 ปีที่แล้ว

    I don't know... I do 90% of my work on windows PC... and while i was watching this video... i was thinking that i usually do things like that with other editors... for example, the part of the adding or removing quotes... if i have to do something like that with thousands of lines... i just write a regular expression (that i already know because i'm a developer) or simple use a find/replace with things like /n (or /r/n) and achieve the same results, the same to replace a word... Or if i need to indent several lines... i just select the lines (with Shift and Arrows or simply selecting with the mouse) and press tab to ident all of those lines... And i'm talking that i can do that with a simple Notepad++. But of course, in order to do my work, i prefer to use a specialized IDE that in fact save me a lot of time/work. My Favorite IDEs are from JetBrain, they are packed with TONS of features, and is still easy to begin with, because on his core is still working like a normal text editor. That means the learning curve is a lot friendlier, and that time is valuable too.
    I guess that may some use cases where you need to work with a lot of text files on a remote linux machine... maybe you can use VIM to save time (if you already know how to use VIM).
    Maybe i'm wrong, and i just can appreciate how great VIM is for most scenarios, but i haven't seen anything "Life changing" here.

  • @nevoyu
    @nevoyu 3 ปีที่แล้ว +2

    Ok DT, next time we have a patron talk I now have a new thing to task about besides the Gnome desktop, Defaults Matter, and Microsoft Windows. Because I really don't like Vim for my creative writing.

  • @Speykious
    @Speykious 3 ปีที่แล้ว +7

    I got used to Vim in a week or two, and I gotta say, I even find it more intuitive than traditional text editing
    Edit one year later: nvm

    • @christophernuzzi2780
      @christophernuzzi2780 2 ปีที่แล้ว

      That's a blatant lie. I mean, if you're serious, you are the only human who feels that way.

    • @Speykious
      @Speykious 2 ปีที่แล้ว

      @@christophernuzzi2780 1 year later:
      I changed my mind

    • @Speykious
      @Speykious 2 ปีที่แล้ว

      @@christophernuzzi2780 Still find it really productive though, and also not as hard to learn as people may want to believe

  • @wallawalla4405
    @wallawalla4405 3 ปีที่แล้ว +61

    Bill gates: the best text editor for programming is “notepad”

    • @arianitonline8748
      @arianitonline8748 3 ปีที่แล้ว

      paper and pen. take it or leave it

    • @CristiNeagu
      @CristiNeagu 3 ปีที่แล้ว

      You do know that Microsoft makes Visual Studio, right? The most feature packed code editor anyone could ever want. That thing has all the features you could ever need, then about 5 times as many features you will never use. So... no.

    • @arianitonline8748
      @arianitonline8748 3 ปีที่แล้ว +5

      @@CristiNeagu still no comparison to notepad

    • @timatidoon995
      @timatidoon995 3 ปีที่แล้ว

      Jet brains code editors, for instance intellij idea for Java or pycharm for python are by far the best editors, much better then VS code, however it's good also

    • @CristiNeagu
      @CristiNeagu 3 ปีที่แล้ว

      @@timatidoon995
      1. Is there anything PyCharm does that VS Code doesn't?
      2. You need to buy PyCharm to use it at work, so you will most likely have to use a different editor professionally. You can use VS Code anywhere.

  • @Imaltont
    @Imaltont 3 ปีที่แล้ว +1

    One of my personal favorites that I use pretty much every day at work is vim's grep integration (or ripgrep in my case). Navigating large codebases is super fast if you just have a few keywords/patterns to feed into grep from vim and let it do it's magic, and then just have all the results in the quick fix list for easy access to the files/locations in the file(s).

  • @sumitrawat3742
    @sumitrawat3742 3 ปีที่แล้ว +7

    13:05 you can use gv to use the last selection again

  • @kellingc
    @kellingc 3 ปีที่แล้ว +1

    this is teally cool stuff. Thank you for taking the time to demonstrate this.

  • @RichM1967
    @RichM1967 3 ปีที่แล้ว

    To remove the double quotes from the end of the line can be done like this :10,42s/"$//g $ means end of line. For the beginning of the line, use ^. To add a quote to the begining of lines 10-42. :10,42s/^/"/g. The Ending is :10,42s/$/"/g

  • @MadFrenzy582
    @MadFrenzy582 3 ปีที่แล้ว +2

    Always love vim tips and reminders. Vim is still my fav for text editing. So useful.

  • @MrLotrus
    @MrLotrus 2 ปีที่แล้ว

    Last two weeks I spent around 30 hours customizing my neovim, zsh and tmux setup. Very efficient))

  • @dtkedtyjrtyj
    @dtkedtyjrtyj 3 ปีที่แล้ว +1

    Had I begun with Linux five to ten years earlier I suspect I'd have been a hardcore vimmer. But today I don't have the time, interest or reason to learn a new text editor.
    I got some advice years ago: "Choose one text editor and learn it really, really well." _That_ is what will save hours of work. Vim is _one_ editor you can learn well, as is the JetBrains suite or probably emacs.

  • @sergeykolesnik1171
    @sergeykolesnik1171 8 หลายเดือนก่อน

    The double quote staff can be easily done with any editor (notepad++, for example) with multiple cursor support. That includes almost every ide.

  • @luisprado1539
    @luisprado1539 3 ปีที่แล้ว +37

    This man does not know find and replace (available even on gedit)

  • @distant6606
    @distant6606 2 ปีที่แล้ว +1

    Learning vim is like going to the gym. You start off knowing it wont give you immediate results and its not gonna be a fun thing, but the more u use it the more effective/fast you re gonna be.

  • @polgzz
    @polgzz 2 ปีที่แล้ว

    11:15 DT, that is actually even easier than you did it. You can directly hit "I" (so, shift + i) when visually selecting various lines, and when you do it, even if it SEEMS that what you type next is only being applied to the first line, actually, when you hit escape it will apply it to EVERY line that you had selected!
    So, no need for ": norm I". Just "I" after selecting and directly type or delete what you want to change at the beginning of those lines!

  • @sabyabhoi8841
    @sabyabhoi8841 3 ปีที่แล้ว

    Love your content DT! Happy New year!

  • @praetorxyn
    @praetorxyn 3 ปีที่แล้ว +2

    I prefer using a graphical editor like Sublime Text or Visual Studio Code / Code OSS but with vim key bindings enabled. This way I can use the mouse when I feel like it, most importantly have a project explorer I can select files with using the mouse, and can still browse around within one file just like I was using vim.
    Though, a lot of what you're doing here I wou ld handle with regex find / replace. e.g., to remove the double quotes, I'd just replace:
    ^"(\w+)"$
    with
    \1 or $1 depending on what editor I'm using, an expression to replace it with the value of the first capture group.

  • @coreosg4635
    @coreosg4635 3 ปีที่แล้ว +5

    i can't even do the tutorial
    2nd part: press esc
    -proceeds to press esc
    'nothing happens'

    • @SoundToxin
      @SoundToxin 3 ปีที่แล้ว +1

      You were probably already in normal mode. Just move along.

    • @coreosg4635
      @coreosg4635 3 ปีที่แล้ว

      @@SoundToxin nope I couldn't do anything, I tried the vscode plugin and it worked

  • @fabrice9848
    @fabrice9848 ปีที่แล้ว

    If you use WSL, use ctrl+q instead of ctrl+v to prevent the abbreviation from expanding.

  • @nathanmiddleton1478
    @nathanmiddleton1478 2 ปีที่แล้ว +1

    Switching text editors is such a pain to retrain the muscle memory. There is so much inertia behind the use of VIM for people coming to Linux today it's really the only good choice. When I started using Solaris back in the very early 90s Emacs was in more common use in my part of the country (before TH-cam of course). Now Emacs doesn't seem to have the steam it used to.
    Personally the Joe editor has been my bread and butter for such a very long time. I've curated my own way of doing things and tried several times to join the VIM tribe and just can't because of muscle memory and a lack of will to fight against it, lol. :)

    • @nihancj
      @nihancj 2 ปีที่แล้ว

      Hmm.. interesting

  • @LeCockroach
    @LeCockroach 3 ปีที่แล้ว

    IMO you can use Atom editor and have all those features and more, without learning to do Mortal Kombat fatality for a really simple line editing...
    Atom: select the text you want to edit at the end, or at the beggining, or after the first word or whatever; Press ctrl + L to enter line mode; Press home to jump to start of all the lines; Press del; Press end to jump to the end; Press backspace. Done in 1 second tops. I do this all the time.

    • @heroe1486
      @heroe1486 3 ปีที่แล้ว

      You'd have the time to finish rewrite the Linux kernel in rust in Vim before Atom even launched to be honest

  • @AssemblyWizard
    @AssemblyWizard 3 ปีที่แล้ว +8

    It just sounds like DT hasn't spent any time in any modern text editor. I'd really like to have a faceoff between Vim and Subilme/VSCode where we are given an editing task and are timed, to debunk those false "vim saves hours of work" claims. I think 8:59 best proves my point, but any of the examples in this video are easier and faster to do in a modern text editor than in vim.
    Do yourself a favor and learn modern text editors which aren't notepad or notepad++. You'll save hours of work compared to vim.
    (yes I know vim including advanced features. yes I am subscribed)

    • @skaruts
      @skaruts 3 ปีที่แล้ว

      Sublime really lives up to its name. Been using it for years and never looked back. The only times I use VSCode is when I need proper code completion (e.g. when learning a new language or framework), since that's where sublime is a kinda lacking, in my experience, and it's usually pretty damn good in VSCode.
      SublimeMerge also seems pretty damn good, I might add. Haven't used it much yet, but it's been impressing me.
      (Also, SublimeText and SublimeMerge have surprisingly low memory and CPU footprints. This is great if you're on a potato, like I am.)

    • @thetreeofclues
      @thetreeofclues 3 ปีที่แล้ว +2

      @@skaruts The problem is Sublime is proprietary garbage.

    • @skaruts
      @skaruts 3 ปีที่แล้ว

      @@thetreeofclues not a problem to me. It's not an OS, it's just a text editor.

    • @thetreeofclues
      @thetreeofclues 3 ปีที่แล้ว

      @@skaruts don't see why the scope of the program matters lol

    • @ac0rpbg
      @ac0rpbg 3 ปีที่แล้ว

      The problem with the above tools mentioned is they are not included by default everywhere. The reason vi/vim is so important. At my work we have many systems with many different OSes most of the systems are closed so no internet access/no permission to install anything. So vi/vim is what you use. For example we had DEC ALPHA with Tru64 with FDDI network. It has vi so does RHEL and most if not all linux distros.

  • @davidolson1077
    @davidolson1077 3 ปีที่แล้ว

    I've been using vim (originally vi) for so long that I have a hard time teaching someone how to use it since it's my fingers that know what to do, not my brain!
    In any case, there's one thing I've occasionally done in vim that I think may be much more time consuming in a lot of other editors, namely editing on the basis of columns. Suppose, for example in the file that was being edited, you wanted to capitalize the first letter of every one of those array elements. Just block select them and type ~. It's also possible to, say, block select the bottom half of the list and then cut and paste it as a second column next to the first half of the list.
    That ability to invoke an external tool to process (a portion of) your file via the :! construct is extremely powerful. Sorting is an obvious example but I've also used that technique to convert a binary file into a text representation of the contents, do my hacking, then covert back to binary, i.e., I don't need a separate hex editor.

  • @lupanama1960
    @lupanama1960 3 ปีที่แล้ว +2

    the usage of norm and that cgn + colon is really neat

  • @GertBoers
    @GertBoers 3 ปีที่แล้ว +1

    Very informative! Thanks!

  • @mavitorino
    @mavitorino 3 ปีที่แล้ว

    Great video! Just loved the w sudo tee command!

  • @frostrune
    @frostrune 3 ปีที่แล้ว +5

    I still use Sublime Text. It fulfils all my needs and is VERY lightweight compared to electron stuff. Vim is ok but it takes a lot to get used to especially if you have used standard editors your whole life.

  • @_nikolanenadovic
    @_nikolanenadovic 3 ปีที่แล้ว +1

    The last one is pure gold!

  • @rochr4
    @rochr4 3 ปีที่แล้ว

    Love Vim, I use it for years and yet learned something, thanks.

  • @laurensweyn
    @laurensweyn 3 ปีที่แล้ว +1

    Honestly not convinced. To play devil's advocate, Comparing this to my favorite text editor (IDEA):
    - Line shifts are done with holding ALT-shift, then tapping up/down to shift. CTRL-shift would also do contextual shifts (keeping indentation correct, lines of code will 'jump' to the next valid point line between methods instead of in the middle of a method def etc.), something I don't see VIM doing
    - Blindly search for a line and perform operations on it... Interesting, but I could see me messing that up or spending more time crafting the expression than just doing it in discrete steps. Like, how am I supposed to know where in the document the line should go without seeing both the source and target lines (and then calculating the line number diff), at which point I could've done the shift myself.
    -There are, of course, keyboard shortcuts for top of document and end of document. There's also browser-style back/forward (seperate from undo/redo) for line positions, and also a view of your recent cursor positions in a menu at CTRL-shift-E.
    - indenting multiple lines, like most GUI editors, select all and tab/shift-tab. CTRL-W will also do contextual select to avoid the task of finding the line numbers (each tap of 'W' increases selection range. First tap is word, then to first 'punctuation', then to edges of first pair of brackets, then to the next set of braces etc.)
    - 'Visual mode' (column selection mode/multi-cursor) is just alt-shift-ins. In addition, removing the quotes at the end of the line wouldn't even need a macro in IDEA: just select the line range, and hit 'end' to move each cursor to the end of each respective line. Then one 'backspace' will delete the quotes. Macros work too of course. 'Visual mode' inserts are also much more intuitive (select, home, quote, end, quote)
    (Cont. in reply)

    • @laurensweyn
      @laurensweyn 3 ปีที่แล้ว

      -Find-replace, including individual inspections before replacement is pretty standard even in basic graphical editors.
      -Abbreviations are admittedly not as easy to set up, but certainly doable with templates and such, I know some are defined by default. Personally I'd probably forget to hit that shortcut to not expand it in vim but I guess that's nitpicking. I personally use paste history for that (CTRL-shift-V) if I need multiple text blocks in different places.
      - The shell is accessible via a UI tab (ALT-F12), admittedly not as heavily integrated as it is in vim. The file is saved as soon as the focus switches, and reloaded on another focus switch so e.g. sort/grep would still take effect quickly.
      Note none of these require mouse interaction even with default keybindings. Any actions that may need the mouse can be searched for with CTRL-shift-A, and bound to a key instead of executing with alt-enter. This UI also doubles as a keybind reference. There's also more intuitive but slower alternatives to most actions so it's all much easier to get into.

  • @comraq3637
    @comraq3637 2 ปีที่แล้ว

    "set -o vi"
    After learning this, I realized that I want vi bindings in everything that involves typing text.

  • @mustyhead
    @mustyhead 3 ปีที่แล้ว

    I love it when I get to learn new things! :)
    I used vim for my NaNo the last couple years and am using it for most of my writing. I've learned to use folding to organize notes and hide text when I don't want to be distracted.
    xp in normal mode is my favorite quick fix for transposed characters.
    Yesterday, not knowing how to navigate multiple edit histories just about bit me in the ass (thank the gods I'd saved just before screwing the pooch). I really need to practice that.
    One last thing. I don't use vim to save time or be efficient. I use it because it's comfortable and lets me work in peace. The time/efficiency aspect is just icing on the cake.

  • @SwarangaSarma
    @SwarangaSarma 2 ปีที่แล้ว +2

    Good video on vim, but I feel most vim power users do not realize how powerful the normal editors today are. I am going to take the example of Intellij because that is what I use.
    1. Moving lines around: Is that something you do in programming? Moving individual lines around. That would mess with your variable declarations etc. Anyway, this is still very easy in Intellij. I can do it using Ctrl+Shift and up/down arrow. But many times, I am actually moving entire functions around (sometimes you want all your public functions together and want to move that one private function down after all the other public methods. Even there, just take your cursor to the function declaration, and use the same Ctrl+Shift and up/down arrow to move the entire functions around. Much easier. How can that be done in vim? What extra plugins or macros do you need for that?
    2. removing the quotes from the start and end: This one is embarrassingly easy; in fact easier than his macro. Just go to column selection mode using Alt+Shift+Insert and move the cursor t all the lines with leading quotes (just like he did in the visual mode_ and press Delete. Now removing the end quotes is even easier and you don't need any weird macros. Just press End and the cursor will go to the end of each line and then press Backspace. Boom, done in 2 seconds versus his 10 seconds and either he has never used any other editor in his life or you are being disingenuous when you say it will take minutes. Lol.
    3. Adding the double quote at the start of every line: Notice how he uses a completely different set of commands to do that. In Intellij it is the same consistent column mode - go to Ctrl+Shift+Insert, move the cursor to the lines and then simply type ". Adding the ending quote seemed painful because he has to type that command again. But in Intellij, you do not lose the column editor mode, if you use it one. You remain in that mode and just press End to get to the end of each line. Time saved vs vim.
    4. Find replace but being able to choose a different word every time: Neat trick. I have to find out how to do that in Intellij. You can certainly do that by replacing the "replace" text in Find+Replace every-time but I think it will be more tedious that the vim example. But this seems like a really contrived example, In my 12 years of programming in the industry, I have never had to use it like this. Most time I want to do a simpler find and replace (example variable names, method names). These things are of course very easy in Intellij with its much superior refactoring support across multiple files, modules etc. It will even suggest if I want to update the name of the test methods if applicable and in most cases I do need to. Good example, but never needed to do this.
    5. Abbreviations: this is just Intellij macros. Like typing "sout" and then Ctrl+Space to expand this into System.out.println. Even better because you get auto-complete when you type "so". And you can also add your own more complex macros but I have rarely needed to as the default ones are powerful enough.
    6. Shell commands: Intellij comes with a terminal that you can launch right below the main editor.
    7. Change writable status: This one requires a mouse (File -> File properties -> Make File Writable, I will give you that. But most of the times I am working on a project directory and all files are writable. I guess you encounter this more in vim because we use it to change random one-off files in some server. That makes more sense to me.
    Overall, not powerful enough or compelling enough to overcome the learning curve for software development IMO.
    I completed 12 years of programming in my job and I have mostly done Java. In these 12 years, I think I have really tried learning vim at east 3 times spending at least a month in each attempt. I have never managed to get over the hump of the initial learning curve mainly because I didn't see the value of the editor in my profession. I can do the basic stuff like search/replace, explore production logs etc but I still don't see why I would use this as my main IDE replacement. Even if I could get to a stage where I am a really good at editing text, for me, typing/editing has never been my main bottleneck. Most of the time I am staring at the code, mentally linking it to the rest of the project, thinking about the data structures, interfaces, seeing how if I change something breaks compilation in some other file/module etc.
    When it comes to changing text, I am never really editing text, I am refactoring, which is a big difference for me. For instance, I am never playing with lines/words - I am working with methods, expressions, classes and their hierarchy. A common refactoring would be to "move this method to its parent class" or something like "extract this expression that I am passing to a method call into a local variable and also replace it with the new local variable in the two other places where I am reevaluating the same expression needlessly; oh and also assign a good name for the variable based on the type/expression context and also immediately give me the control back so I can simply type a different variable name if I feel the default you assigned is not good enough" - this entire refactoring is one command Ctrl+Alt+V in Intellij. How will I do these simple refactoring tasks in vim which does not have such deep understanding of what the text represents?
    Things that I like about vim: it is everywhere. It is really performant and I never have trouble opening GBs of log files in vim. No IDE I know will handle that.
    I am not trying to insult anyone; in fact I do want to learn vim and get really better at it. Why wouldn't I if it helps me be more effective in my job? I am not married to any IDE nor do I hold any stock of any IDE company. I really admire the folks which have shown the dedication to learn this tool and get so much better at it but I could never convince myself if it is for me and is worth the effort to spend months learning it.

  • @lucha6262
    @lucha6262 3 ปีที่แล้ว

    Regarding removing double quotes in a normal text editor, it wouldn’t take minutes, you can do alt-select to select columns and then deletes all your double quotes

    • @lucha6262
      @lucha6262 3 ปีที่แล้ว

      Good video otherwise, thank you :)