Presentation Transcript
Seven habits of effective text editing :Seven habits of effective text editing Bram Moolenaar
www.moolenaar.net
The problem :The problem You edit lots of text:
Program source code
documentation
e-mail
etc.
But you don't have enough time!
Examples :Examples Obviously, Vim is used here.
Selecting a good editor is the first step towards effective text editing.
Three basic steps :Three basic steps 1. Detect inefficiency
2. Find a quicker way
3. Make it a habit
Seven habits :Seven habits “The 7 habits of highly effective people”
- Stephen R. Covey
Seven habits :Seven habits “Seven years of highly defective people”
- Scott Adams
Habit 1: Moving around quickly Step 1: Detect inefficiency :Habit 1: Moving around quickly Step 1: Detect inefficiency You wonder where a variable is used.
You use:
/argc
n
Habit 1: Moving around quickly Step 2: Find a quicker way :Habit 1: Moving around quickly Step 2: Find a quicker way In the on-line help on searching you find:
:set hlsearch and *
Habit 1: Moving around quickly Step 3: Make it a habit :Habit 1: Moving around quickly Step 3: Make it a habit Put this in your vimrc file:
:set hlsearch
Habit 1: Moving around quickly (folding in Vim 6.0) :Habit 1: Moving around quickly (folding in Vim 6.0)
Habit 2: Don't type it twice step 1: Detect inefficiency :Habit 2: Don't type it twice step 1: Detect inefficiency You have a hard time typing:
XpmCreatePixmapFromData()
And often type it wrong.
Habit 2: Don't type it twice step 2: Find a quicker way :Habit 2: Don't type it twice step 2: Find a quicker way You ask a colleague how he does this.
He tells you about insert mode completion:
CTRL-N
Habit 2: Don't type it twice step 3: Make it a habit :Habit 2: Don't type it twice step 3: Make it a habit type CTRL-N
Habit 3: Fix it when it's wrong :Habit 3: Fix it when it's wrong Step 1: Detect inefficiency
You type English words wrong.
Step 2: Find a quicker way
You search the Vim maillist archives
and find the spell checker macros.
:iabbrev teh the
:syntax keyword WordError teh
Habit 3: Fix it when it's wrong :Habit 3: Fix it when it's wrong Step 3: make it a habit
Add new words if you see them.
Habit 4: A file seldom comes alone :Habit 4: A file seldom comes alone Step 1: Detect inefficiency
When working on a new project you have
a hard time finding your way.
Step 2: Find a quicker way
You read the quick reference guide and
find out about tags and quickfix:
:!ctags -R . :tag init
:grep K_HOME *.c *.h
Habit 4: A file seldom comes aloneVim 6.0: quickfix window :Habit 4: A file seldom comes aloneVim 6.0: quickfix window
Habit 5: Let's work together :Habit 5: Let's work together Step 1: Detect inefficiency
You use Netscape for e-mail. You
hate the editor.
Step 2: Find a quicker way
Check the Netscape docs: can you
select another editor? No.
You ask the Vim maillist if someone
knows a solution. No response.
Habit 5: Let's work together :Habit 5: Let's work together Step 2: (continued)
You dive into it yourself. You make key
bindings in Netscape and mappings in
Vim to move the text from Netscape to
Vim and back.
Step 3: Make it a habit
After using it for a few days you
automatically trigger the bindings.
Habit 6: Text is structured :Habit 6: Text is structured Step 1: Detect inefficiency
You are wading through a list of lint
warnings to find real errors.
Habit 6: Text is structured :Habit 6: Text is structured Step 2: Find a quicker way
Write cleanup commands in a script:
:g/gtk_x11.c:.*enum/d
:g/if_perl.*conversion to.*proto/d
Step 3: Make it a habit
After running lint you source the script.
Now and then you add new commands
to delete harmless warnings.
Habit 7: Sharpen the saw :Habit 7: Sharpen the saw You have to keep on tuning the set of commands you use for your needs.
Use feedback: Learn from what you did.
Habit 7: Sharpen the saw :Habit 7: Sharpen the saw Vim 6.0 will help you sharpen your saw:
Folding
Automatic indenting
plugins
edit files over a network
etc.
Summary :Summary Step 1: Detect inefficiency
- Find out what you waste time on
Step 2: Find a quicker way
- read the on-line help
- read the quick reference, books, etc.
- ask friends and colleagues
- search the internet
- do it yourself
Step 3: Make it a habit
- do it
- keep on improving
How not to edit effectively :How not to edit effectively You have to get the text ready right now. No time to read documentation or learn a new command.
>> You will keep on using primitive commands
You want to learn every feature the editor offers and use the most efficient command all the time.
>> You will waste a lot of time learning things you
will never use.
The end :The end Questions?
Charityware?
Orphans in Uganda?
Really the end :Really the end