slow scroll speed in vim running within Terminal

Discussion in 'Mac OS X Server, Xserve, and Networking' started by ashishk, Jan 28, 2010.

  1. macrumors newbie

    Jan 28, 2010
    Hi All:

    I have tried Terminator, iTerm, mrxvt, GLTerm mentioned at the
    following page as alternatives to Mac OS X

    I have also tried putty on Mac OS X.

    But all of these terminals along with native Mac OS suffer the same slowness while scrolling down a file in vim editor.

    As a comparison data point, I can scroll 300 lines in 10 seconds when
    I use putty on windows. But all the terminals including native on Mac OS X 10.6.1 can scroll only 120 lines in 10

    To many people this may not seem like a big deal, but being a
    professional developer that makes a huge difference to me as I can
    feel the sluggish left-right-up-down movement in vim.

    In your opinion what do you think the root cause may be?

    Do you know of any terminal application on Mac OS X, which can match
    putty on windows in terms of scroll speed?

    And if it's a Mac OS X GUI limitation, when is Apple going to improve this?

  2. macrumors newbie

    Mar 8, 2010
    I have same problem ...
    any solution ?

    many thanks
  3. macrumors newbie

    Mar 8, 2010
    For now, the only solution I have found is to use xterm.
  4. macrumors 65816


    Oct 11, 2004
    St. Louis, MO
    Still using vim, wouldn't it be easier to code in a code editor?

    I use TextWrangler, and it can run your code to the terminal at any time.
  5. macrumors 6502


    Feb 23, 2004
    San Diego, CA, USA
    Using Vim in, I can easily scroll about 5100 lines in 10 seconds, using ctrl-F or ctrl-B (scroll one page forward or back), if you're trying to move a long distance in a hurry. I get the same speed in MacVim (which can update the screen much faster than, so I'm pretty certain that the limiting factor (at least in MacVim) is the keyboard repeat rate, not Vim's ability to update the screen.

    The only way I get roughly 120 lines in 10 seconds, is scrolling Vim (or MacVim) line-at-a-time by holding down "j" or the down arrow, and that's clearly the default keyboard repeat rate (about 12 per second) limiting things.

    You can easily adjust the keyboard repeat rate in System Preferences, in the Keyboard pane, by fiddling with "Key Repeat Rate" and "Delay Until Repeat". But I've been using Vi/Vim/MacVim for a loooong time, and have never felt the need to have the keyboard repeat faster; the key (no pun intended) is to use Vim as it was intended...

    If you want to move 3 lines down (or up) hit "j" (or "k") 3 times (much faster than waiting for key repeat to kick in). If you want to move 10 or 20 lines down, then maybe hold down "j" ("k") and let it repeat. But if you want to go further, that's the wrong way: ctrl-D (ctrl-U) will take you half a screen Down (Up), ctrl-F (ctrl-B) will take you a full screen Forward/down (Back/up)... holding any of these down will get you somewhere fast. If you're trying to get to somewhere in particular: "]]" ("[[") will jump forward (backward) to the start of the next (previous) function (in C/Obj-C/Perl/Java/Javascript or any other language where "{" by itself at the start of a line indicates the start of a function), or use "/" ("?") to search for some text and "n" to jump to subsequent occurrences until you reach the right one. Or use tags (see ":help tags"), build a tags file for your code, then you can use ":tag yourfunctionname" to jump to a function definition in any file, or sit on the function's name in a call somewhere and hit ctrl-] to jump to the definition (and ctrl-T to jump back to the call). Or even more lazily, in Vim, if you sit on any identifier and hit "*" ("#"), Vim will select that identifier as search text and take you to the next (previous) occurrence, where you can use "n" to keep searching further -- this is more than sufficient in smaller files. And turn on incremental searching and search highlighting (":set incsearch hlsearch", worth putting in your ~/.vimrc), then the search results will be more obvious on the screen.

    Finally, nearly everything in Vim (and Vi before it) takes a repeat count argument. If what you want is really to jump 179 lines down, then type "179j" (and if you wanted to get to line 423, that's "423G"). Use the full power of Vim as it was intended, and keyboard repeat rate will never be a limiting factor.

    And if you're using Vim on the Mac extensively, you owe it to yourself to check out MacVim -- you can still start it from (an included helper script lets you type "mvim file1 [ file2... ]" at a command line prompt), but it's much more Mac-like -- cut'n'paste and drag'n'drop interact well with other programs, you get real scroll bars (drag those to move through a file really quickly), multiple editing windows, and you can use the mouse for selecting text, along with (practically) unlimited colors for color syntax highlighting (you do use that, right? ":help syntax" or just ":syn on" to switch it on), instead of the 16 colors you're limited to in And it's fast.

    Vim (and MacVim) is the ultimate programmer's editor, if you take the time to really learn how to use it -- it requires the smallest amount of hand movement to make changes (especially since one never has to reach for the mouse), it's insanely customizable/programmable, and it has a very smartly laid out command set -- yes, it has a steep learning curve, but for something that I use 10 hours a day, I'll take easy/powerful to use over easy to learn any day.

  6. macrumors 6502

    Jun 23, 2003
    I think the above post pretty much covers the details, but if you're trying to scroll hundreds of lines at once in Vim, you're doing it wrong.
  7. thread starter macrumors newbie

    Jan 28, 2010
    Hi Guys:

    Thanks for all the responses, especially Carl's. "Key Repeat Rate" and "Delay Until Repeat" was the root cause. This was what I was looking for.

    Now the vim's maximum one-line-at-a-time scroll speed is the same in both, putty running in Windows and running on Mac OS. It's 30 lines per second.

  8. macrumors newbie

    Jul 13, 2010
  9. macrumors 6502


    Feb 23, 2004
    San Diego, CA, USA
    Sorry, no. It isn't. Did you read this thread before posting a voodoo-based answer?

    You may have managed to shake something loose by swapping out, but... correlation does not imply causation -- I'm running Mac OS X 10.6.4, the corresponding 2.1.1 in 64-bit mode, and the system-supplied Vim (v7.2), and it scrolls really blazingly fast (as seen by scrolling with ^D & ^U or ^F & ^B), with syntax highlighting or without. Scrolling line-at-a-time with J & K or the arrow keys goes just as fast as the system's key repeat rate allows -- neither Vim nor are the limiting factors for line-at-a-time scrolling speed.

    And I haven't seen any scrolling slowdowns in any prior 10.6.x version of, either.

    By the way, if you want hideously fast scrolling, along with real Mac-style scroll-bars and cut'n'paste and more-than-16 color syntax highlighting, seriously check out MacVim.
  10. macrumors newbie

    Jul 15, 2010
    it is indeed sluggish

    I found my is indeed sluggish, though I haven't found other people complaining about this, so I'm guessing the issue is not common.

    The issue I'm having is, the became extremely sluggish when it have to render some color texts. When I turn-off syntax coloring, the speed of vim back to normal. When I turn-on syntax coloring, it takes a couple seconds to scroll one line up. And it is not even limited to vim. I experience sluggishness in the shell as well when directory listing is colorized.

    It wasn't like this at day 1 of snow leopard, but at some point, I started experience this. At first, I thought it is some sort of network glitches, but when I accidentally turned off the syntax coloring, the speed of vim got much much faster. That is how I came to aware of this. And I've been using X11's xterm instead.

    Today, to my surprise, I have changed the theme of the and the issue is suddenly gone. My default theme was Novel and I've changed the default theme as Basic and quit the process and restarted the and color text rendering is not slow anymore. Curiously, if I start another window using Novel theme after the first window is opened as Basic, it is not slow. However, if I changed the default theme as Novel and quit/restart the, it is again slow. So I guess I'll be stick with Basic for now.

    Hope this is helpful to some one.
  11. macrumors newbie

    Dec 1, 2012
    turn off opacity on your terminal window settings

    if you have opacity on your terminal windows, this will make vim scrolling slow. i struggle with this for almost a year; now i'm back to full speed. i actually started using macvim :/ back to term!
  12. switon, Dec 1, 2012
    Last edited: Dec 2, 2012

    macrumors 6502a

    Sep 10, 2012
    RE: emacs...

    Hi all,

    Sorry for posting on a 2+ year old original posting...


Share This Page