Archive for July, 2007

Use Google Docs to compose and publish blog posts

Friday, July 27th, 2007

While this feature has been around for a long time, not many people are aware that you can publish blog posts straight from Google Docs to just about any blog of your choice, including Blogger, WordPress, and others. This is pretty awesome for many reasons, but most important for many people is the incredible rich text, WYSIWYG editor that Google Docs offers.

I’m tempted to give it a shot myself, for many reasons. I think using Google Docs to compose and edit my blog posts may make it easier to:

  • keep copies of my blog posts somewhere other than my blog (just in case),
  • work on my blog posts from anywhere with an Internet connection (and under the security of an HTTPS connection!),
  • version-control all of my writing without changing my workflow the least bit,
  • invite specific users to preview my drafts before they go live and even help me edit my posts so I can catch typos and grammatical errors,
  • easily export my writings to a variety of formats, such as PDF or a ZIP file with the ease of a single menu,
  • and of course, instantly take advantage of whatever wonderful things Google has in their pipeline.

Another blogger wrote an entire how to article showing tips for using Google Docs to blog that is quite a good read, as well.

List of default Mac OS X command-line editing bash keyboard shortcuts

Wednesday, July 18th, 2007

More and more often I find myself doing my work on the command line because it’s faster and more efficient. However, most users find that they end up spending a lot of time typing and re-typing commands, editting them, and then having to fix them. This is especially true if you’re new to the command line.

In addition, many times you want to run multiple commands with only slight variations. Perhaps you are benchmarking your Web server with ApacheBench and want to change some of its settings. Whatever you are trying to do, many shells actually offer a full suite of command-line editting shortcuts.

Some of them are built into the shell itself and others are configured elsewhere. Unfortunately, different distributions and different operating systems sometimes don’t have the same shortcut configuration. There are lots of lists out there for Bash keyboard shortcuts for Linux, and many of these work on Mac OS X, but they don’t all work.

So here’s a list as complete as I can make it of the default keyboard editting shortcuts configured on a Mac OS X machine running bash. An extra goodie is that some of these movement shortcuts work in any Coacoa text field, which means you don’t have to keep switching between bash’s command line movement shortcuts and the +arrow keys shortcuts anymore.

CTRL+a
Move cursor to beginning of the line. (I think of this as anchoring my cursor to the start.)
CTRL+e
Move cursor to the end of the line.
CTRL+k
Delete everything from under the cursor to the end of the line. (I think of this as killing the rest of my line.)
CTRL+f
Move forward one character. Identical to .
CTRL+b
Move backward one character. Identical to .
ESC+f
Move forward one word.
ESC+b
Move backward one word.
CTRL+u
Delete everything from under the cursor the beginning of the line.
CTRL+w
Delete from under the cursor to the beginning of the word.
CTRL+r
Recall previous commands by searching for them.
CTRL+t
Transpose (swap) the two characters before the cursor with one another.
ESC+t
Transpose (swap) the two words before the cursor with one another.
CTRL+y
Paste the most previously-deleted string. Basically a sort of command-line editting “undo.”
CTRL+z
Stop the current process and send it to the background.
CTRL+c
Send an SIG_HUP to the current process. The net effect of doing this on the command line is that you cancel your current command and are presented with a blank new line.
CTRL+d
Send an end-of-file special character to the current process. Doing this at the command line is identical to closing your terminal window.
CTRL+p
Recall previous command executed. Identical to .
CTRL+d
Forward delete.
CTRL+h
Backspace.
CTRL+j
Carriage return. Identical to hitting the return key.
CTRL+m
Newline. Identical to return.
CTRL+l
Repaint screen. This is useful if a program’s output is overwriting some text on your terminal. The effect of doing this on a command line is that you clear the screen. Note than in Apple’s Terminal.app, you can also press +K to clear the screen.
CTRL-x + CTRL-x
Mark current location in line and jump to beginning of line or second mark if defined. Repeat to jump to between both marks.
CTRL+v
Insert next character verbatim. This is how you escape control sequences. For instance, to literally send a
CTRL+[
Identical to ESC.
ESC+c
Capitolize word under cursor and move to next word.
ESC+u
Uppercase word under cursor and move to next word.
ESC+l
Lowercase word under cursor and move to next word.
ESC+.
Insert last word from previous command after cursor.
TAB
Auto-completes file, folder, and program names.
ESC-?
List the possible completions
CTRL-x /
List the possible filename completions
ESC-/
Attempt filename completion
CTRL-x ~
List the possible variable completions
ESC- ~
Attempt username completion
CTRL-x $
List the possible variable completions
ESC-$
Attempt variable completion
CTRL-x @
List the possible hostname completion
ESC-@
Attempt hostname completion
CTRL-x !
List the possible command completions
ESC-!
Attempt command completion
ESC-TAB
Attempt completion from previous commands in the history list

Note that this list assumes you’ve not reconfigured any of these shortcuts. Again, they’re the default keyboard assignments. Furthermore, they’re the default keyboard assignments for the default command-line editting mode, which is emacs mode. If you’re familiar with the vi editor, you can change this to use all the cursor movement and deletion keys you’re familiar with by saying set -o vi to your shell.

External references

Here’s some other people’s lists. They’re basically the same, but what the hey.