SlideShare ist ein Scribd-Unternehmen logo
1 von 73
How to become
a practical Vim user
   ujihisa.vim#3 2012-11-03


                 @kana1
It was very hard
  to master Vim
It was very hard
        to master Vim

• Too many features to learn
It was very hard
        to master Vim

• Too many features to learn
• Odd behavior for backward compatibility
It was very hard
        to master Vim

• Too many features to learn
• Odd behavior for backward compatibility
• Esoteric language to customize
Too many features
    to learn
Too many Ex commands
Too many Ex commands
Too many functions
Too many functions
Too many documents
Too many documents
Odd behavior
Odd behavior

• Useful features are turned off by default
Odd behavior

• Useful features are turned off by default
 • Syntax highlighting
Odd behavior

• Useful features are turned off by default
 • Syntax highlighting
 • Automatic indentation per filetype
Odd behavior

• Useful features are turned off by default
 • Syntax highlighting
 • Automatic indentation per filetype
 • Command-line completion
Odd behavior

• Useful features are turned off by default
 • Syntax highlighting
 • Automatic indentation per filetype
 • Command-line completion
 • and so on
Odd behavior
Odd behavior


• :map is recursively expanded
Odd behavior


• :map is recursively expanded
• <BS> cannot delete indent by default
Odd behavior


• :map is recursively expanded
• <BS> cannot delete indent by default
• and so on
Esoteric language
  to customize
Difficult comments
Difficult comments
:endsomething
:endsomething
Higher-odder functions
Higher-odder functions
But...
But...


• People rumor that
  Vim is one of the most invaluable skill
Now it’s very easy
 to master Vim
Practical Vim
by Drew Neil
Why Practical Vim
    is great
Why Practical Vim
        is great

• Organized well to boost your productivity
Why Practical Vim
        is great

• Organized well to boost your productivity
• Focused on mastering built-in features
Organized well
Organized well


• Organized by useful theme
Organized well


• Organized by useful theme
• Can be read in any order
Organized well


• Organized by useful theme
• Can be read in any order
• Progress from simple to advanced
Organized by
useful theme
Organized by
                    useful theme
• 1. The Vim Way                          • 12. Matching Patterns and Literals
• 2. Normal Mode                          • 13. Search
• 3. Insert Mode                          • 14. Substitution
• 4.Visual Mode                           • 15. Global Commands
• 5. Command-Line Mode                    • 16. Index and Navigate Source Code with ctags
• 6. Manage Multiple Files                • 17. Compile Code and Navigate Errors with
                                            the Quickfix List
• 7. Open Files and Save Them to Disk
                                          • 18. Search Project-Wide with grep, vimgrep,
• 8. Navigate Inside Files with Motions     and Others

• 9. Navigate Between Files with Jumps    • 19. Dial X for Autocompletion
• 10. Copy and Paste                      • 20. Find and Fix Typos with Vim’s Spell Checker
• 11. Macros                              • 21. Now What?
Can be read
in any order
Can be read
              in any order
•   If you are an experienced user:
    → Read interesting tips,
        then move the book around as you need.
Can be read
               in any order
•   If you are an experienced user:
    → Read interesting tips,
        then move the book around as you need.

•   If you are a novice:
    → Read from the first to the last.
        Chapters are organized so.
Progress from
simple to advanced
Progress from
   simple to advanced
11. Macros
Progress from
   simple to advanced
11. Macros
Tip 64. Record and Execute a Macro
Progress from
   simple to advanced
11. Macros
Tip 64. Record and Execute a Macro
Tip 65. Normalize, Strike, Abort
Tip 66. Play Back with a Count
Tip 67. Repeat a Change on Contiguous Lines
Tip 68. Append Commands to a Macro
Tip 69. Act Upon a Collection of Files
Tip 70. Evaluate an Iterator to Number Items in a List
Progress from
   simple to advanced
11. Macros
Tip 64. Record and Execute a Macro
Tip 65. Normalize, Strike, Abort
Tip 66. Play Back with a Count
Tip 67. Repeat a Change on Contiguous Lines
Tip 68. Append Commands to a Macro
Tip 69. Act Upon a Collection of Files
Tip 70. Evaluate an Iterator to Number Items in a List
Tip 71. Edit the Contents of a Macro
Progress from
   simple to advanced
11. Macros
Tip 64. Record and Execute a Macro
Tip 65. Normalize, Strike, Abort
Tip 66. Play Back with a Count
Tip 67. Repeat a Change on Contiguous Lines
Tip 68. Append Commands to a Macro
Tip 69. Act Upon a Collection of Files
Tip 70. Evaluate an Iterator to Number Items in a List
Tip 71. Edit the Contents of a Macro
Progress from
   simple to advanced
11. Macros
Tip 64. Record and Execute a Macro
Tip 65. Normalize, Strike, Abort
Tip 66. Play Back with a Count
Tip 67. Repeat a Change on Contiguous Lines
Tip 68. Append Commands to a Macro
Tip 69. Act Upon a Collection of Files
Tip 70. Evaluate an Iterator to Number Items in a List
Tip 71. Edit the Contents of a Macro
Focused on mastering
   built-in features
Focused on mastering
    built-in features


• Not only how to use,
  but also how to combine
Focused on mastering
   built-in features
Focused on mastering
    built-in features
• Tip 1. Meet the dot command
  → Learn what the dot command does
    dw. = dwdw
Focused on mastering
    built-in features
• Tip 1. Meet the dot command
  → Learn what the dot command does
    dw. = dwdw
• Tip 9. Compose repeatable changes
  → Learn how to effectively use the dot
    Bad: dbx, bdw
    Good: daw
Focused on mastering
   built-in features
Focused on mastering
    built-in features
• Tip 10. Use counts to do simple arithmetic
  → Learn how to use counts
    d2w = 2dw = dwdw
Focused on mastering
    built-in features
• Tip 10. Use counts to do simple arithmetic
  → Learn how to use counts
    d2w = 2dw = dwdw
• Tip 11. Don’t count if you can repeat
  → Learn when to use counts
    dw... rather than d4w and 4dw
Conclusion
Conclusion

• If you are not a Vim wizard:
  → Buy Practical Vim!
Conclusion

• If you are not a Vim wizard:
  → Buy Practical Vim!
• If you are already a Vim wizard:
  → Share your magics!
But
But


• Focused on mastering built-in features
But


• Focused on mastering built-in features
• Not a book for how to tune up Vim for you
But


• Focused on mastering built-in features
• Not a book for how to tune up Vim for you
• Therefore
We need “Practical Vim script”
       by Drew Neil
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

Web performance
Web performanceWeb performance
Web performanceSamir Das
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJSTim Sommer
 
Extreme Javascript Minification
Extreme Javascript MinificationExtreme Javascript Minification
Extreme Javascript MinificationDavid Goemans
 
Smalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhoneSmalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhoneEsteban Lorenzano
 
Auto closing parenthesis @vim conf2014
Auto closing parenthesis @vim conf2014Auto closing parenthesis @vim conf2014
Auto closing parenthesis @vim conf2014cohama
 
Web assembly: a brief overview
Web assembly: a brief overviewWeb assembly: a brief overview
Web assembly: a brief overviewPavlo Iatsiuk
 
Web assembly with go
Web assembly with goWeb assembly with go
Web assembly with goWangChow1
 
WordPress Multisite General Overview
WordPress Multisite General OverviewWordPress Multisite General Overview
WordPress Multisite General OverviewRonald Huereca
 
How *NOT* to firmware
How *NOT* to firmwareHow *NOT* to firmware
How *NOT* to firmwareAmit Serper
 
Use all the buzzwords
Use all the buzzwordsUse all the buzzwords
Use all the buzzwordsJared Faris
 

Was ist angesagt? (13)

WebAssembly Overview
WebAssembly OverviewWebAssembly Overview
WebAssembly Overview
 
Web performance
Web performanceWeb performance
Web performance
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJS
 
Extreme Javascript Minification
Extreme Javascript MinificationExtreme Javascript Minification
Extreme Javascript Minification
 
Smalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhoneSmalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhone
 
Auto closing parenthesis @vim conf2014
Auto closing parenthesis @vim conf2014Auto closing parenthesis @vim conf2014
Auto closing parenthesis @vim conf2014
 
Web assembly: a brief overview
Web assembly: a brief overviewWeb assembly: a brief overview
Web assembly: a brief overview
 
Gashuku Presen
Gashuku PresenGashuku Presen
Gashuku Presen
 
Web assembly with go
Web assembly with goWeb assembly with go
Web assembly with go
 
WordPress Multisite General Overview
WordPress Multisite General OverviewWordPress Multisite General Overview
WordPress Multisite General Overview
 
Emacs talk
Emacs talkEmacs talk
Emacs talk
 
How *NOT* to firmware
How *NOT* to firmwareHow *NOT* to firmware
How *NOT* to firmware
 
Use all the buzzwords
Use all the buzzwordsUse all the buzzwords
Use all the buzzwords
 

Andere mochten auch

Vim+cscope+ctags+taglist
Vim+cscope+ctags+taglistVim+cscope+ctags+taglist
Vim+cscope+ctags+taglistPicker Weng
 
[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through Vim[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through VimPayton Chou
 
Vim, the Way of the Keyboard
Vim, the Way of the KeyboardVim, the Way of the Keyboard
Vim, the Way of the KeyboardFederico Galassi
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1cohama
 

Andere mochten auch (11)

CSCOPE Tutorial
CSCOPE TutorialCSCOPE Tutorial
CSCOPE Tutorial
 
Cscope and ctags
Cscope and ctagsCscope and ctags
Cscope and ctags
 
Vim+cscope+ctags+taglist
Vim+cscope+ctags+taglistVim+cscope+ctags+taglist
Vim+cscope+ctags+taglist
 
[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through Vim[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through Vim
 
Vim survival guide
Vim survival guideVim survival guide
Vim survival guide
 
Vim, the Way of the Keyboard
Vim, the Way of the KeyboardVim, the Way of the Keyboard
Vim, the Way of the Keyboard
 
Power poin perswnt
Power poin perswntPower poin perswnt
Power poin perswnt
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1
 
vim - Tips and_tricks
vim - Tips and_tricksvim - Tips and_tricks
vim - Tips and_tricks
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 
Vim Hacks
Vim HacksVim Hacks
Vim Hacks
 

Ähnlich wie How to become a practical Vim user

Effective text editing with vim
Effective text editing with vimEffective text editing with vim
Effective text editing with vimxprayc
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Alan Christensen
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Developmentkmloomis
 
Cloud conference - mongodb
Cloud conference - mongodbCloud conference - mongodb
Cloud conference - mongodbMitch Pirtle
 
Five killer hidden features in JIRA and Confluence
Five killer hidden features in JIRA and Confluence Five killer hidden features in JIRA and Confluence
Five killer hidden features in JIRA and Confluence Atlassian
 
Becoming a more productive Rails Developer
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails DeveloperJohn McCaffrey
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
Refactor your code: when, why and how?
Refactor your code: when, why and how?Refactor your code: when, why and how?
Refactor your code: when, why and how?Nacho Cougil
 
Keeping MongoDB Data Safe
Keeping MongoDB Data SafeKeeping MongoDB Data Safe
Keeping MongoDB Data SafeTony Tam
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deploymentheyrocker
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Eramartinlippert
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
Rails development environment talk
Rails development environment talkRails development environment talk
Rails development environment talkReuven Lerner
 
Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06jimbojsb
 
Becoming a more Productive Rails Developer
Becoming a more Productive Rails DeveloperBecoming a more Productive Rails Developer
Becoming a more Productive Rails DeveloperJohn McCaffrey
 

Ähnlich wie How to become a practical Vim user (20)

Effective text editing with vim
Effective text editing with vimEffective text editing with vim
Effective text editing with vim
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
engage 2014 - JavaBlast
engage 2014 - JavaBlastengage 2014 - JavaBlast
engage 2014 - JavaBlast
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
 
Cloud conference - mongodb
Cloud conference - mongodbCloud conference - mongodb
Cloud conference - mongodb
 
Five killer hidden features in JIRA and Confluence
Five killer hidden features in JIRA and Confluence Five killer hidden features in JIRA and Confluence
Five killer hidden features in JIRA and Confluence
 
Tweakers Anonymous
Tweakers AnonymousTweakers Anonymous
Tweakers Anonymous
 
Becoming a more productive Rails Developer
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails Developer
 
Tweakers Anonymous
Tweakers AnonymousTweakers Anonymous
Tweakers Anonymous
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Refactor your code: when, why and how?
Refactor your code: when, why and how?Refactor your code: when, why and how?
Refactor your code: when, why and how?
 
Keeping MongoDB Data Safe
Keeping MongoDB Data SafeKeeping MongoDB Data Safe
Keeping MongoDB Data Safe
 
Why puppet? Why now?
Why puppet? Why now?Why puppet? Why now?
Why puppet? Why now?
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Era
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Rails development environment talk
Rails development environment talkRails development environment talk
Rails development environment talk
 
Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06
 
Garbage Collection .Net
Garbage Collection .NetGarbage Collection .Net
Garbage Collection .Net
 
Becoming a more Productive Rails Developer
Becoming a more Productive Rails DeveloperBecoming a more Productive Rails Developer
Becoming a more Productive Rails Developer
 

Kürzlich hochgeladen

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 

Kürzlich hochgeladen (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

How to become a practical Vim user

  • 1. How to become a practical Vim user ujihisa.vim#3 2012-11-03 @kana1
  • 2. It was very hard to master Vim
  • 3. It was very hard to master Vim • Too many features to learn
  • 4. It was very hard to master Vim • Too many features to learn • Odd behavior for backward compatibility
  • 5. It was very hard to master Vim • Too many features to learn • Odd behavior for backward compatibility • Esoteric language to customize
  • 6. Too many features to learn
  • 7. Too many Ex commands
  • 8. Too many Ex commands
  • 14. Odd behavior • Useful features are turned off by default
  • 15. Odd behavior • Useful features are turned off by default • Syntax highlighting
  • 16. Odd behavior • Useful features are turned off by default • Syntax highlighting • Automatic indentation per filetype
  • 17. Odd behavior • Useful features are turned off by default • Syntax highlighting • Automatic indentation per filetype • Command-line completion
  • 18. Odd behavior • Useful features are turned off by default • Syntax highlighting • Automatic indentation per filetype • Command-line completion • and so on
  • 20. Odd behavior • :map is recursively expanded
  • 21. Odd behavior • :map is recursively expanded • <BS> cannot delete indent by default
  • 22. Odd behavior • :map is recursively expanded • <BS> cannot delete indent by default • and so on
  • 23. Esoteric language to customize
  • 31. But... • People rumor that Vim is one of the most invaluable skill
  • 32.
  • 33.
  • 34. Now it’s very easy to master Vim
  • 35.
  • 37. Why Practical Vim is great
  • 38. Why Practical Vim is great • Organized well to boost your productivity
  • 39. Why Practical Vim is great • Organized well to boost your productivity • Focused on mastering built-in features
  • 41. Organized well • Organized by useful theme
  • 42. Organized well • Organized by useful theme • Can be read in any order
  • 43. Organized well • Organized by useful theme • Can be read in any order • Progress from simple to advanced
  • 45. Organized by useful theme • 1. The Vim Way • 12. Matching Patterns and Literals • 2. Normal Mode • 13. Search • 3. Insert Mode • 14. Substitution • 4.Visual Mode • 15. Global Commands • 5. Command-Line Mode • 16. Index and Navigate Source Code with ctags • 6. Manage Multiple Files • 17. Compile Code and Navigate Errors with the Quickfix List • 7. Open Files and Save Them to Disk • 18. Search Project-Wide with grep, vimgrep, • 8. Navigate Inside Files with Motions and Others • 9. Navigate Between Files with Jumps • 19. Dial X for Autocompletion • 10. Copy and Paste • 20. Find and Fix Typos with Vim’s Spell Checker • 11. Macros • 21. Now What?
  • 46. Can be read in any order
  • 47. Can be read in any order • If you are an experienced user: → Read interesting tips, then move the book around as you need.
  • 48. Can be read in any order • If you are an experienced user: → Read interesting tips, then move the book around as you need. • If you are a novice: → Read from the first to the last. Chapters are organized so.
  • 50. Progress from simple to advanced 11. Macros
  • 51. Progress from simple to advanced 11. Macros Tip 64. Record and Execute a Macro
  • 52. Progress from simple to advanced 11. Macros Tip 64. Record and Execute a Macro Tip 65. Normalize, Strike, Abort Tip 66. Play Back with a Count Tip 67. Repeat a Change on Contiguous Lines Tip 68. Append Commands to a Macro Tip 69. Act Upon a Collection of Files Tip 70. Evaluate an Iterator to Number Items in a List
  • 53. Progress from simple to advanced 11. Macros Tip 64. Record and Execute a Macro Tip 65. Normalize, Strike, Abort Tip 66. Play Back with a Count Tip 67. Repeat a Change on Contiguous Lines Tip 68. Append Commands to a Macro Tip 69. Act Upon a Collection of Files Tip 70. Evaluate an Iterator to Number Items in a List Tip 71. Edit the Contents of a Macro
  • 54. Progress from simple to advanced 11. Macros Tip 64. Record and Execute a Macro Tip 65. Normalize, Strike, Abort Tip 66. Play Back with a Count Tip 67. Repeat a Change on Contiguous Lines Tip 68. Append Commands to a Macro Tip 69. Act Upon a Collection of Files Tip 70. Evaluate an Iterator to Number Items in a List Tip 71. Edit the Contents of a Macro
  • 55. Progress from simple to advanced 11. Macros Tip 64. Record and Execute a Macro Tip 65. Normalize, Strike, Abort Tip 66. Play Back with a Count Tip 67. Repeat a Change on Contiguous Lines Tip 68. Append Commands to a Macro Tip 69. Act Upon a Collection of Files Tip 70. Evaluate an Iterator to Number Items in a List Tip 71. Edit the Contents of a Macro
  • 56. Focused on mastering built-in features
  • 57. Focused on mastering built-in features • Not only how to use, but also how to combine
  • 58. Focused on mastering built-in features
  • 59. Focused on mastering built-in features • Tip 1. Meet the dot command → Learn what the dot command does dw. = dwdw
  • 60. Focused on mastering built-in features • Tip 1. Meet the dot command → Learn what the dot command does dw. = dwdw • Tip 9. Compose repeatable changes → Learn how to effectively use the dot Bad: dbx, bdw Good: daw
  • 61. Focused on mastering built-in features
  • 62. Focused on mastering built-in features • Tip 10. Use counts to do simple arithmetic → Learn how to use counts d2w = 2dw = dwdw
  • 63. Focused on mastering built-in features • Tip 10. Use counts to do simple arithmetic → Learn how to use counts d2w = 2dw = dwdw • Tip 11. Don’t count if you can repeat → Learn when to use counts dw... rather than d4w and 4dw
  • 65. Conclusion • If you are not a Vim wizard: → Buy Practical Vim!
  • 66. Conclusion • If you are not a Vim wizard: → Buy Practical Vim! • If you are already a Vim wizard: → Share your magics!
  • 67. But
  • 68. But • Focused on mastering built-in features
  • 69. But • Focused on mastering built-in features • Not a book for how to tune up Vim for you
  • 70. But • Focused on mastering built-in features • Not a book for how to tune up Vim for you • Therefore
  • 71.
  • 72. We need “Practical Vim script” by Drew Neil
  • 73. Q&A

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n