SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Text-Objects
vim's elegant function

2014/02/15 - Kanazawa.rb meetup 18 LT
vim operation

•

[operator] [motion]

•

target = from cursor potion to motion result
vim operator
•

c : change

•

d : delete

•

y : yank

•

p : paste

•

etc ...
vim motion
•

j : next line

•

w : next word head

•

$ : line end

•

/ : search

•

etc ...
example
1.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna
aliqua.

2.

Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.

3.

Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.
example
1.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna
aliqua.

2.

Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.

3.

Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.

d$
example
1.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
delete

2.

Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.

3.

Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.

d$
example
1.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
delete

2.

Ut enim ad

3.

Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.

d$
motion only?

•

You can use Text-Objects
Text Objects
•

blocked chars

•

word, sentence, paragraph block

•

special char surround block

•

"xxx", (xxx), <xxx>, <p>xxx</p>
Text Objects
•

blocked chars

•

word, sentence, paragraph block

•

special char surround block

•

"xxx", (xxx), <xxx>, <p>xxx</p>
Yes, corder friendly!!
How to use
•

[operator] [motion]
↓

•

[operator] [text-objects specifier]

•

target = specified text-objects
specifier
•

[a|i][wsp])}>"'`t]

•

aw : a word

•

i> : inner >

•

at : a tag

•

etc...
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

di'
example
1.

var superFunc = function() {

2.

console.log ('');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

di'
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

cit
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>abc</p>')

5.

.appendTo('.super_anchor');

6.

};

cit
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

cat
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

include tag

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

cat
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('abc')

5.

.appendTo('.super_anchor');

6.

};

cat
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

yi}
example
1.

var superFunc = function() {

2.

console.log ('pretty good function');

3.

$("<div>")

4.

.html('<p>fancy html</p>')

5.

.appendTo('.super_anchor');

6.

};

yi}
Conclusion

•

Use "text objects" for elegant vim operation

•

:help text-objects
Thank you
Tomokazu Kiyohara
http://github.com/kiyohara
http://facebook.com/tomokazu.kiyohara

Contenu connexe

En vedette

Web API をデバックするときに必要なたったひとつのこと
Web API をデバックするときに必要なたったひとつのことWeb API をデバックするときに必要なたったひとつのこと
Web API をデバックするときに必要なたったひとつのことTomokazu Kiyohara
 
Google Cloud Platform を支える技術 …のごく一部
Google Cloud Platform を支える技術 …のごく一部Google Cloud Platform を支える技術 …のごく一部
Google Cloud Platform を支える技術 …のごく一部Tomokazu Kiyohara
 
JavaScript で OS X を自動操作
JavaScript で OS X を自動操作JavaScript で OS X を自動操作
JavaScript で OS X を自動操作Tomokazu Kiyohara
 
USTREAMの視聴率を上げよう!
USTREAMの視聴率を上げよう!USTREAMの視聴率を上げよう!
USTREAMの視聴率を上げよう!Tomokazu Kiyohara
 
เรื่องระบบDns
เรื่องระบบDnsเรื่องระบบDns
เรื่องระบบDnsMoo Pang PD
 
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介Tomokazu Kiyohara
 
ประโยชน์ของเครือข่าย
ประโยชน์ของเครือข่ายประโยชน์ของเครือข่าย
ประโยชน์ของเครือข่ายsupawadee13
 
明日から使えるコーディングツール
明日から使えるコーディングツール明日から使えるコーディングツール
明日から使えるコーディングツールTomokazu Kiyohara
 
LiveStyle for Vim - Quick start
LiveStyle for Vim - Quick startLiveStyle for Vim - Quick start
LiveStyle for Vim - Quick startTomokazu Kiyohara
 
Compact Web - Remind "web compression" -
Compact Web - Remind "web compression" -Compact Web - Remind "web compression" -
Compact Web - Remind "web compression" -Tomokazu Kiyohara
 

En vedette (17)

イベント継続のコツ
イベント継続のコツイベント継続のコツ
イベント継続のコツ
 
Web API をデバックするときに必要なたったひとつのこと
Web API をデバックするときに必要なたったひとつのことWeb API をデバックするときに必要なたったひとつのこと
Web API をデバックするときに必要なたったひとつのこと
 
Google Cloud Platform を支える技術 …のごく一部
Google Cloud Platform を支える技術 …のごく一部Google Cloud Platform を支える技術 …のごく一部
Google Cloud Platform を支える技術 …のごく一部
 
JavaScript で OS X を自動操作
JavaScript で OS X を自動操作JavaScript で OS X を自動操作
JavaScript で OS X を自動操作
 
USTREAMの視聴率を上げよう!
USTREAMの視聴率を上げよう!USTREAMの視聴率を上げよう!
USTREAMの視聴率を上げよう!
 
เรื่องระบบDns
เรื่องระบบDnsเรื่องระบบDns
เรื่องระบบDns
 
Planning
PlanningPlanning
Planning
 
Zen coding15min
Zen coding15minZen coding15min
Zen coding15min
 
Beginner's Sinatra
Beginner's SinatraBeginner's Sinatra
Beginner's Sinatra
 
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介
 
JavaScript Dynamic Loading
JavaScript Dynamic LoadingJavaScript Dynamic Loading
JavaScript Dynamic Loading
 
ประโยชน์ของเครือข่าย
ประโยชน์ของเครือข่ายประโยชน์ของเครือข่าย
ประโยชน์ของเครือข่าย
 
こわくないプルリク
こわくないプルリクこわくないプルリク
こわくないプルリク
 
Github's HUB
Github's HUBGithub's HUB
Github's HUB
 
明日から使えるコーディングツール
明日から使えるコーディングツール明日から使えるコーディングツール
明日から使えるコーディングツール
 
LiveStyle for Vim - Quick start
LiveStyle for Vim - Quick startLiveStyle for Vim - Quick start
LiveStyle for Vim - Quick start
 
Compact Web - Remind "web compression" -
Compact Web - Remind "web compression" -Compact Web - Remind "web compression" -
Compact Web - Remind "web compression" -
 

Text-Objects - vim's elegant function

  • 2. vim operation • [operator] [motion] • target = from cursor potion to motion result
  • 3. vim operator • c : change • d : delete • y : yank • p : paste • etc ...
  • 4. vim motion • j : next line • w : next word head • $ : line end • / : search • etc ...
  • 5. example 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 2. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 3. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • 6. example 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 2. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 3. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. d$
  • 7. example 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. delete 2. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 3. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. d$
  • 8. example 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. delete 2. Ut enim ad 3. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. d$
  • 9. motion only? • You can use Text-Objects
  • 10. Text Objects • blocked chars • word, sentence, paragraph block • special char surround block • "xxx", (xxx), <xxx>, <p>xxx</p>
  • 11. Text Objects • blocked chars • word, sentence, paragraph block • special char surround block • "xxx", (xxx), <xxx>, <p>xxx</p> Yes, corder friendly!!
  • 12. How to use • [operator] [motion] ↓ • [operator] [text-objects specifier] • target = specified text-objects
  • 13. specifier • [a|i][wsp])}>"'`t] • aw : a word • i> : inner > • at : a tag • etc...
  • 14. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. };
  • 15. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. };
  • 16. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; di'
  • 17. example 1. var superFunc = function() { 2. console.log (''); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; di'
  • 18. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. };
  • 19. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; cit
  • 20. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>abc</p>') 5. .appendTo('.super_anchor'); 6. }; cit
  • 21. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; cat
  • 22. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") include tag 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; cat
  • 23. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('abc') 5. .appendTo('.super_anchor'); 6. }; cat
  • 24. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; yi}
  • 25. example 1. var superFunc = function() { 2. console.log ('pretty good function'); 3. $("<div>") 4. .html('<p>fancy html</p>') 5. .appendTo('.super_anchor'); 6. }; yi}
  • 26. Conclusion • Use "text objects" for elegant vim operation • :help text-objects