Skip to main content

Deals You Can't Miss

1 Year Subscription

GVim, Vim, Vi key-board short-cuts


  • Switch between tabs

    Ctrl+PageUp, Ctrl+PageDown
    Ctrl + Shift + UpArrowCtrl + Shift + DownArrow

  • Move to Nth tab in gvim
    gt, gT
    Note: The advantage with using gt, gT keys are that you can move to [N]th tab. For eg., if you want to go to 3rd tab type 3gt


  • Open a file in new tab from NERDTree while still remaining in NERDTree

    T will open the selected file in new tab, without changing focus from NERDTree
    t will open the selected file in new tab, and changes focus to that tab


  • Recursively Open all child nodes     

    Activate the NERDTree and navigate to the directory whose all child nodes must open.
    Now press O (capital) to expanded list of child nodes
  

  • Recursively Close all child nodes

    Activate the NERDTree and navigate to the directory whose all child nodes must close.
    Now press X (capital) to collapsed list of child nodes


  • Close all tabs at once with a single command, when I have multiple tabs open

    If no files are modified, then
    :qa
    To save work in all tabs and exit, then
    :wqa
    :xa
    To close all other tabs, except the active one:
    :tabo
    To close all tabs and open buffers
    :qall
    :tabdo :q   (The :tabdo will execute the command passed to it - in this case :q - for all the open tabs)

  • Text object selection

    Select text between Single Quotes
    When cursor is within the single quotes ('), type vi'

    Select text between Paranthesis block ()
    When cursor is within the Paranthesis block (), type vib

    Select text between Curly braces block ()
    When cursor is within the Curly braces block (), type viB

    Note: To make the selections "inclusive" of quotes, parenthesis or braces you can use a instead of i

    More on this can be read at Text object selection
  
  • Create a file or directory in NERDTree
     Activate the NERDTree and navigate to the directory in which the file/directory should be created.    Then press m to bring-up the NERDTree File-system Menu and choose a for "add child node". Now enter the file/directory name and you are done. Note that directory name should end with forward slash - /.

  • Rename a file or directory in NERDTree
    Activate the NERDTree and navigate to the directory in which the file/directory should be renamed. Then press m to bring-up the NERDTree File-system Menu and choose m for "move the current node". Moving is same as Renaming! Now enter the file/directory name and you are done. Note that directory name should end with forward slash - /.

  • Start VIM with NERDTree opened automatically
    Add the line below to your .vimrc:
    NERDTree

  • Auto-open NERDTree in every tab
    Add the two below lines to your ~/.vimrc:
    autocmd VimEnter * NERDTree
    autocmd BufEnter * NERDTree

My Popular Posts

Ten Commandments of Egoless Programming

We are nothing but the values we carry. All through my life thus far, I tried to influence people around me with the virtues I value. Thanks to some good reading habits I had inculcated, and the fortune of being in good community of peers and mentors alike, I managed to have read some real good books. This post is about the 10 commands of egoless programming in Weinberg's book. I shall explain the commandments based on my experience here. So very many decades ago, Gerald M. Weinberg authored  The Psychology of Computer Programming . In it, he listed The Ten Commandments of  Egoless Programming , which remains relevant even today for us as not just programmers but as team-members. Weinberg is regarded as a pioneer in taking a people-centric approach to computing, and his work endures as a good guide to intelligence, skill, teamwork, and problem-solving power of a developer. When they appear to inspire and instruct, we find that they can apply to just about every business area, and e

Should I buy refurbished laptop from Amazon?

This post is based on my experience with amazon.in and guess it to be true on all other platforms as well. At least you can check out and verify for these pointers before you make that decision to buy renewed/refurbished laptop on Amazon with your hard earned money. I see this question propping up in several forums and on many different occasions. In the recent past, I had my 5 year old dell laptop that gave up because its motherboard failed. One of the options that I had in my mind was to re-use the HDD and the 16GB DDR4 RAM of that old laptop in the one that I purchase next as secondary.  I had come to a conclusion that it is not worth buying a refurbished/renewed laptop at all. Why? For the following reasons, most of which I see as BIG #RedFlags: You got to remember that Amazon provides a platform for 3rd party sellers to sell their products as well. So in your search for refurbished laptops you wouldn’t want to choose some random 3rd party seller who Amazon doesn’t endorse. You cou

Multi-tenant Architectures

  Multi-tenancy Application Deployment Architecture could be modeled in 4 broad ways: Separate Apps & Separate Databases Shared Apps & Shared Databases Separate Apps & Shared Databases Shared Apps & Separate Databases There is no right or wrong here. It's about choice and consequence that you should consider taking into your business context and constraints. In this post I intend to jot down a some key points to keep in mind for each of these multi-tenant architecture. These are more of quick notes for my quick reference, a cheat-sheet of sorts when I have to make choices. And I guess this can come handy to you too in your wise decision making. Separate Apps & Separate Databases Easiest to implement from development and deployment stand-point. Just automate the deployment infrastructure for every tenant for quick set-up. Most expensive of all the models from infrastructure cost stand-point. Relatively longer deployment t