MacOS – TextEdit: How to stop cursor always being at the bottom of the screen while writing

macostexteditword-processor

Ok so I have recently started using TextEdit to create .txt documents on 10.8.2 (Mountain Lion) but I am used to word processors like pages.

I realise that txt files don't have pages, even though you can create page breaks or simulate the printed view with the "wrap to page" command.

The issue I have occurs whichever view I use. I fill the screen with text and, as I write more, the cursor creates new text at the bottom of the screen as the existing text scrolls away. I don't find this very ergonomic as I continually have to look downwards at the bottom of the screen.

I have tried adding empty lines to the end of the document but this is not ideal: I use the keyboard to navigate and, in this case, 'command + down arrow' takes me to the end of the extra lines of space, not to the end of the document text, making my keyboard navigation less efficient.

Is there a way I can avoid having to stare at the bottom of the screen while creating lengthly .txt documents? Is there a way to get the cursor to behave as it does in Pages for example: i.e. when it reaches the bottom of a screen full of text, it automatically scrolls and moves to the top of a new blank screen?

Failing that, can anyone recommend a good minimal plaintext editor for Mac which has some kind of auto scrolling feature when the screen is filled with text?

Hope my description is clear! Thanks in advance for any input.

Best Answer

Many full screen writing applications like WriteRoom and Byword either add a margin to the bottom or support centering the view around the current line.

You could also create ~/Library/KeyBindings/ and save a property list like this as DefaultKeyBinding.dict:

{
    "~p" = (moveToEndOfDocument:, insertNewlineIgnoringFieldEditor:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, insertNewline:, moveWordBackward:, moveToEndOfParagraph:, moveForward:, centerSelectionInVisibleArea);
    "~r" = (moveToEndOfDocument:, moveWordBackward:, moveToEndOfParagraph:, moveToEndOfDocumentAndModifySelection:, deleteBackward:, centerSelectionInVisibleArea:, insertNewlineIgnoringFieldEditor:);
}

After reopening TextEdit, ⌥P should add padding lines to the end and ⌥R remove them.