{"id":33705,"date":"2025-11-06T04:31:54","date_gmt":"2025-11-06T01:31:54","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/"},"modified":"2025-11-06T04:31:54","modified_gmt":"2025-11-06T01:31:54","slug":"vim-ve-ben-klavye-odakli-duzenlemenin-sirlari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/","title":{"rendered":"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131"},"content":{"rendered":"<p><body><\/p>\n<p>Vim&#8217;in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim&#8217;in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~70 words --><\/p>\n<p>Modern geli\u015ftirme ortamlar\u0131nda pek \u00e7ok farkl\u0131 metin d\u00fczenleyici ve IDE bulunsa da, Vim&#8217;in sad\u0131k bir kullan\u0131c\u0131 kitlesi her zaman olmu\u015ftur. Peki, bu eski g\u00f6r\u00fcn\u00fcml\u00fc terminal tabanl\u0131 d\u00fczenleyici, yeni nesil ara\u00e7lara ra\u011fmen neden hala bu kadar pop\u00fcler? Cevap, Vim&#8217;in sundu\u011fu benzersiz verimlilik, \u00f6zelle\u015ftirme yetene\u011fi ve parmaklar\u0131n\u0131z\u0131n ucundaki komut g\u00fcc\u00fcnde yat\u0131yor. \u00c7o\u011fu geli\u015ftirici, kod yazarken veya metin d\u00fczenlerken s\u00fcrekli fareye uzanma ihtiyac\u0131 hisseder. Bu durum, odaklanmay\u0131 b\u00f6ler ve i\u015f ak\u0131\u015f\u0131n\u0131 yava\u015flat\u0131r. Vim ise, tamamen klavye odakl\u0131 bir deneyim sunarak bu engeli ortadan kald\u0131r\u0131r. Tek bir tu\u015f kombinasyonuyla sat\u0131rlarca metni silebilir, kopyalayabilir, de\u011fi\u015ftirebilir veya dosyan\u0131n herhangi bir yerine \u0131\u015f\u0131nlanabilirsiniz. Bu sadece h\u0131z de\u011fil, ayn\u0131 zamanda d\u00fc\u015f\u00fcnce ak\u0131\u015f\u0131n\u0131z\u0131n kesintiye u\u011framadan devam etmesi anlam\u0131na gelir.<\/p>\n<p>Vim&#8217;e ilk ba\u015flad\u0131\u011f\u0131n\u0131zda dik bir \u00f6\u011frenme e\u011frisiyle kar\u015f\u0131la\u015fman\u0131z olduk\u00e7a olas\u0131d\u0131r. Ancak bu ba\u015flang\u0131\u00e7taki zorluk, zamanla e\u015fsiz bir ak\u0131c\u0131l\u0131\u011fa d\u00f6n\u00fc\u015f\u00fcr. Vim, programc\u0131lar\u0131n &#8220;d\u00fc\u015f\u00fcnce h\u0131z\u0131nda kod yazma&#8221; idealini ger\u00e7e\u011fe d\u00f6n\u00fc\u015ft\u00fcrmelerine yard\u0131mc\u0131 olur. \u00d6zellikle uzak sunucularda \u00e7al\u0131\u015f\u0131rken, SSH ba\u011flant\u0131lar\u0131 \u00fczerinden eri\u015febilece\u011finiz hafif ve g\u00fc\u00e7l\u00fc bir araca sahip olmak paha bi\u00e7ilmezdir. Kaynaklar\u0131 az t\u00fcketen yap\u0131s\u0131yla Vim, performanstan \u00f6d\u00fcn vermeden her t\u00fcrl\u00fc ortamda etkin bir \u015fekilde kullan\u0131labilir. \u00dcstelik, say\u0131s\u0131z eklenti ve derinlemesine \u00f6zelle\u015ftirme se\u00e7enekleri sayesinde Vim&#8217;i kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u015fekillendirebilir, adeta kendinize \u00f6zel bir geli\u015ftirme ortam\u0131 yaratabilirsiniz. Bu makalede, Vim&#8217;in temel prensiplerinden ba\u015flayarak, g\u00fcnl\u00fck i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 nas\u0131l h\u0131zland\u0131rabilece\u011finizi, ileri d\u00fczey teknikleri ve ki\u015fiselle\u015ftirme s\u0131rlar\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Gelin, bu klavye odakl\u0131 macerada bana e\u015flik edin ve Vim&#8217;in potansiyelini birlikte ke\u015ffedelim.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~310 words for this H2 section --><\/p>\n<h2>Vim&#8217;in Temellerine Yolculuk: Modlar ve \u0130lk Ad\u0131mlar Nas\u0131l At\u0131l\u0131r?<\/h2>\n<p>Vim&#8217;i di\u011fer metin d\u00fczenleyicilerden ay\u0131ran en temel \u00f6zellik, \u00e7al\u0131\u015fma prensibini olu\u015fturan modlard\u0131r. Bir\u00e7ok kullan\u0131c\u0131 Vim&#8217;e al\u0131\u015fmakta zorlanmas\u0131n\u0131n ana nedeni bu modlar sistemini tam olarak anlayamamas\u0131d\u0131r. Asl\u0131nda olduk\u00e7a basit bir mant\u0131\u011fa dayan\u0131r: Her modun belirli bir g\u00f6revi vard\u0131r ve bu modlar aras\u0131nda ge\u00e7i\u015f yaparak metin d\u00fczenleme i\u015flemleri ger\u00e7ekle\u015ftirilir. Bu sayede, tu\u015f tak\u0131m\u0131ndaki her bir karakter hem bir harf hem de bir komut olarak i\u015flev g\u00f6rebilir, bu da Vim&#8217;e inan\u0131lmaz bir esneklik ve h\u0131z kazand\u0131r\u0131r.<\/p>\n<h3>Vim&#8217;in Farkl\u0131 Modlar\u0131 Nelerdir ve Aralar\u0131nda Nas\u0131l Gezinilir?<\/h3>\n<p>Vim&#8217;in d\u00f6rt ana modu vard\u0131r ve bu modlar aras\u0131nda ge\u00e7i\u015f yapmak, Vim&#8217;de ak\u0131c\u0131 bir \u015fekilde \u00e7al\u0131\u015fman\u0131n anahtar\u0131d\u0131r. Bu modlar\u0131 ve aralar\u0131ndaki ge\u00e7i\u015fleri anlamak, Vim&#8217;in kullan\u0131m mant\u0131\u011f\u0131n\u0131 kavraman\u0131z i\u00e7in \u00e7ok \u00f6nemlidir:<\/p>\n<ul>\n<li><strong>Normal Mod (Command Mode):<\/strong> Vim&#8217;i ba\u015flatt\u0131\u011f\u0131n\u0131zda varsay\u0131lan olarak bu modda olursunuz. Metin d\u00fczenleme ve komut \u00e7al\u0131\u015ft\u0131rma i\u015flemlerinin \u00e7o\u011fu bu modda yap\u0131l\u0131r. Karakterler yazmak yerine, imleci hareket ettirir, metinleri siler, kopyalar veya yap\u0131\u015ft\u0131r\u0131rs\u0131n\u0131z. Bu moddan di\u011fer modlara ge\u00e7i\u015f yap\u0131l\u0131r. Normal moda d\u00f6nmek i\u00e7in genellikle <kbd>Esc<\/kbd> tu\u015funa bas\u0131l\u0131r.<\/li>\n<li><strong>Ekleme Modu (Insert Mode):<\/strong> Normal metin d\u00fczenleyicilerinde oldu\u011fu gibi do\u011frudan metin yazmak i\u00e7in kullan\u0131lan moddur. Normal moddan &#8216;i&#8217; (insert), &#8216;a&#8217; (append), &#8216;o&#8217; (open line below) gibi tu\u015flarla girilebilir. Metin yazmay\u0131 bitirdi\u011finizde tekrar Normal moda d\u00f6nmek i\u00e7in <kbd>Esc<\/kbd> tu\u015funa basmal\u0131s\u0131n\u0131z.<\/li>\n<li><strong>G\u00f6rsel Mod (Visual Mode):<\/strong> Metin bloklar\u0131n\u0131 se\u00e7mek i\u00e7in kullan\u0131l\u0131r. Normal moddan &#8216;v&#8217; (karakter), &#8216;V&#8217; (sat\u0131r) veya <kbd>Ctrl<\/kbd>+<kbd>v<\/kbd> (blok) tu\u015flar\u0131yla girilir. Se\u00e7ili metin \u00fczerinde kopyalama, silme veya de\u011fi\u015ftirme gibi i\u015flemler yapabilirsiniz. T\u0131pk\u0131 modern d\u00fczenleyicilerdeki gibi fareyle metin se\u00e7me i\u015flevinin klavye kar\u015f\u0131l\u0131\u011f\u0131d\u0131r.<\/li>\n<li><strong>Komut Sat\u0131r\u0131 Modu (Command-line Mode veya Ex Mode):<\/strong> Daha karma\u015f\u0131k komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r. Normal moddayken &#8216;:&#8217; tu\u015funa basarak girilir. Dosya kaydetme, kapatma, arama\/de\u011fi\u015ftirme veya harici komut \u00e7al\u0131\u015ft\u0131rma gibi i\u015flevler bu modda ger\u00e7ekle\u015ftirilir.<\/li>\n<\/ul>\n<h3>\u0130lk Metin D\u00fczenleme Deneyimi: Dosyay\u0131 A\u00e7ma, Yazma ve Kaydetme<\/h3>\n<p>Vim ile ilk dosya d\u00fczenleme i\u015fleminizi ger\u00e7ekle\u015ftirelim. Terminali a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu yazarak yeni bir dosya olu\u015fturun veya mevcut bir dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>\nvim ilk_dosyam.txt\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutla Vim a\u00e7\u0131ld\u0131\u011f\u0131nda, Normal modda olacaks\u0131n\u0131z. Hemen metin yazmaya \u00e7al\u0131\u015f\u0131rsan\u0131z, komutlar \u00e7al\u0131\u015f\u0131r ve bekledi\u011finiz gibi yazma i\u015flemi ger\u00e7ekle\u015fmez. Metin yazabilmek i\u00e7in Ekleme moduna ge\u00e7meniz gerekir. Bunun i\u00e7in klavyenizden <kbd>i<\/kbd> tu\u015funa bas\u0131n. Ekran\u0131n sol alt k\u00f6\u015fesinde \"INSERT\" yaz\u0131s\u0131n\u0131 g\u00f6receksiniz. Art\u0131k istedi\u011finiz metni yazabilirsiniz:<\/p>\n<pre><code>\nMerhaba d\u00fcnya!\nBu benim Vim ile ilk metin d\u00fczenleme deneyimim.\nVim harika!\n<\/pre>\n<p><\/code><\/p>\n<p>Metni yazmay\u0131 bitirdi\u011finizde tekrar Normal moda d\u00f6nmek i\u00e7in <kbd>Esc<\/kbd> tu\u015funa bas\u0131n. \"INSERT\" yaz\u0131s\u0131 kaybolacakt\u0131r. \u015eimdi dosyay\u0131 kaydetme ve Vim'den \u00e7\u0131kma zaman\u0131. Komut sat\u0131r\u0131 moduna ge\u00e7mek i\u00e7in <kbd>:<\/kbd> tu\u015funa bas\u0131n. Sol altta ':' karakterini g\u00f6receksiniz. Dosyay\u0131 kaydedip \u00e7\u0131kmak i\u00e7in a\u015fa\u011f\u0131daki komutu yaz\u0131n ve <kbd>Enter<\/kbd>'a bas\u0131n:<\/p>\n<pre><code>\n:wq\n<\/pre>\n<p><\/code><\/p>\n<p><code>:w<\/code> komutu dosyay\u0131 kaydeder (write), <code>:q<\/code> komutu ise Vim'den \u00e7\u0131kar (quit). E\u011fer sadece kaydetmek isterseniz <code>:w<\/code>, sadece \u00e7\u0131kmak isterseniz <code>:q<\/code> (de\u011fi\u015fiklik yoksa) veya de\u011fi\u015fiklikleri kaydetmeden \u00e7\u0131kmak isterseniz <code>:q!<\/code> kullanabilirsiniz. Bu basit ad\u0131mlarla Vim'in temel modlar\u0131 ve dosya i\u015flemleri hakk\u0131nda ilk ad\u0131mlar\u0131n\u0131z\u0131 atm\u0131\u015f oldunuz. Pratik yaparak bu komutlar\u0131 kas haf\u0131zan\u0131za i\u015fleyebilirsiniz.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~650 words for this H2 section --><\/p>\n<h2>Vim ile Verimli D\u00fczenleme: G\u00fcnl\u00fck \u0130\u015f Ak\u0131\u015f\u0131n\u0131z\u0131 Nas\u0131l H\u0131zland\u0131r\u0131rs\u0131n\u0131z?<\/h2>\n<p>Vim'in g\u00fcc\u00fc, sadece modlar\u0131nda de\u011fil, ayn\u0131 zamanda metin manip\u00fclasyonu i\u00e7in sundu\u011fu zengin komut setinde yatar. G\u00fcnl\u00fck kodlama ve metin i\u015fleme g\u00f6revlerinizde bu komutlar\u0131 ustaca kullanarak inan\u0131lmaz bir h\u0131z ve verimlilik kazanabilirsiniz. Fareye uzanma ihtiyac\u0131 duymadan, klavyenizden tek bir hareketle karma\u015f\u0131k d\u00fczenleme i\u015flemlerini tamamlamak, zamanla sizi ger\u00e7ek bir Vim ustas\u0131na d\u00f6n\u00fc\u015ft\u00fcrecektir.<\/p>\n<h3>Metin Manip\u00fclasyonunun Temelleri: Kopyalama, Yap\u0131\u015ft\u0131rma ve Silme Stratejileri<\/h3>\n<p>Vim'deki metin manip\u00fclasyon komutlar\u0131 genellikle bir fiil (i\u015flem) ve bir nesne (\u00fczerinde i\u015flem yap\u0131lacak \u015fey) kombinasyonundan olu\u015fur. Bu yap\u0131, Vim'in dilini anlaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<ul>\n<li><strong>Silme (Delete):<\/strong>\n<ul>\n<li><kbd>x<\/kbd>: \u0130mlecin \u00fczerindeki karakteri siler.<\/li>\n<li><kbd>dw<\/kbd>: \u0130mle\u00e7ten kelimenin sonuna kadar siler (delete word).<\/li>\n<li><kbd>d$<\/kbd>: \u0130mle\u00e7ten sat\u0131r\u0131n sonuna kadar siler.<\/li>\n<li><kbd>d0<\/kbd>: \u0130mle\u00e7ten sat\u0131r\u0131n ba\u015f\u0131na kadar siler.<\/li>\n<li><kbd>dd<\/kbd>: Bulundu\u011funuz sat\u0131r\u0131 siler (delete line).<\/li>\n<li><code>3dd<\/code>: Bulundu\u011funuz ve sonraki iki sat\u0131r\u0131 (toplam 3 sat\u0131r) siler.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Kopyalama (Yank):<\/strong> Vim'de \"kopyala\" yerine \"\u00e7ek\" anlam\u0131nda <kbd>y<\/kbd> kullan\u0131l\u0131r (yank).\n<ul>\n<li><kbd>yw<\/kbd>: \u0130mle\u00e7ten kelimenin sonuna kadar kopyalar.<\/li>\n<li><kbd>y$<\/kbd>: \u0130mle\u00e7ten sat\u0131r\u0131n sonuna kadar kopyalar.<\/li>\n<li><kbd>yy<\/kbd>: Bulundu\u011funuz sat\u0131r\u0131 kopyalar (yank line).<\/li>\n<li><code>5yy<\/code>: Bulundu\u011funuz ve sonraki d\u00f6rt sat\u0131r\u0131 (toplam 5 sat\u0131r) kopyalar.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Yap\u0131\u015ft\u0131rma (Paste):<\/strong>\n<ul>\n<li><kbd>p<\/kbd>: Kopyalanan veya silinen metni imlecin sa\u011f\u0131ndaki veya alt\u0131ndaki yere yap\u0131\u015ft\u0131r\u0131r (put).<\/li>\n<li><kbd>P<\/kbd>: Kopyalanan veya silinen metni imlecin solundaki veya \u00fcst\u00fcndeki yere yap\u0131\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Geri Alma\/Yineleme (Undo\/Redo):<\/strong>\n<ul>\n<li><kbd>u<\/kbd>: Son i\u015flemi geri al\u0131r (undo).<\/li>\n<li><kbd>Ctrl<\/kbd>+<kbd>r<\/kbd>: Geri al\u0131nan i\u015flemi yeniden yapar (redo).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Bu fiil-nesne kombinasyonu, Vim'in g\u00fcc\u00fcn\u00fc anlaman\u0131n anahtar\u0131d\u0131r. \u00d6rne\u011fin, <code>di(<\/code> parantez i\u00e7indeki her \u015feyi siler (delete inner parenthesis), <code>yap<\/code> bir paragraf\u0131 kopyalar (yank a paragraph). Bu yap\u0131y\u0131 kavrad\u0131k\u00e7a, Vim'i adeta bir dil gibi konu\u015fmaya ba\u015flars\u0131n\u0131z.\n<\/div>\n<h3>B\u00fcy\u00fck Dosyalarda Gezinme ve Arama\/De\u011fi\u015ftirme \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>B\u00fcy\u00fck kod tabanlar\u0131nda veya uzun metin dosyalar\u0131nda h\u0131zl\u0131ca gezinmek, bir geli\u015ftiricinin zaman\u0131n\u0131 en \u00e7ok t\u00fcketen i\u015flerden biridir. Vim, bu konuda size e\u015fsiz ara\u00e7lar sunar:<\/p>\n<ul>\n<li><strong>Gezinme:<\/strong>\n<ul>\n<li><kbd>h<\/kbd>, <kbd>j<\/kbd>, <kbd>k<\/kbd>, <kbd>l<\/kbd>: Sol, a\u015fa\u011f\u0131, yukar\u0131, sa\u011f (temel imle\u00e7 hareketleri).<\/li>\n<li><kbd>w<\/kbd>: Sonraki kelimenin ba\u015f\u0131na atlar (word).<\/li>\n<li><kbd>b<\/kbd>: \u00d6nceki kelimenin ba\u015f\u0131na atlar (back).<\/li>\n<li><kbd>e<\/kbd>: Sonraki kelimenin sonuna atlar (end).<\/li>\n<li><kbd>gg<\/kbd>: Dosyan\u0131n ba\u015f\u0131na gider.<\/li>\n<li><kbd>G<\/kbd>: Dosyan\u0131n sonuna gider.<\/li>\n<li><code>100G<\/code>: 100. sat\u0131ra gider.<\/li>\n<li><kbd>f<\/kbd>x: \u0130mle\u00e7ten sonraki ilk 'x' karakterini bulur.<\/li>\n<li><kbd>F<\/kbd>x: \u0130mle\u00e7ten \u00f6nceki ilk 'x' karakterini bulur.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Arama:<\/strong>\n<ul>\n<li><kbd>\/<\/kbd>aranacak_kelime: Dosya i\u00e7inde ileriye do\u011fru arama yapar. <kbd>n<\/kbd> ile sonraki, <kbd>N<\/kbd> ile \u00f6nceki e\u015fle\u015fmeye ge\u00e7ilir.<\/li>\n<li><kbd>?<\/kbd>aranacak_kelime: Dosya i\u00e7inde geriye do\u011fru arama yapar.<\/li>\n<li><kbd>*<\/kbd>: \u0130mlecin \u00fczerindeki kelimeyi ileriye do\u011fru arar.<\/li>\n<li><kbd>#<\/kbd>: \u0130mlecin \u00fczerindeki kelimeyi geriye do\u011fru arar.<\/li>\n<\/ul>\n<\/li>\n<li><strong>De\u011fi\u015ftirme (Substitute):<\/strong> Komut sat\u0131r\u0131 modunda (<kbd>:<\/kbd> ile eri\u015filen) kullan\u0131l\u0131r.\n<ul>\n<li><code>:s\/eski\/yeni\/<\/code>: Bulundu\u011funuz sat\u0131rdaki ilk 'eski' kelimesini 'yeni' ile de\u011fi\u015ftirir.<\/li>\n<li><code>:s\/eski\/yeni\/g<\/code>: Bulundu\u011funuz sat\u0131rdaki t\u00fcm 'eski' kelimelerini 'yeni' ile de\u011fi\u015ftirir (global).<\/li>\n<li><code>:%s\/eski\/yeni\/g<\/code>: T\u00fcm dosyada 'eski' kelimelerini 'yeni' ile de\u011fi\u015ftirir.<\/li>\n<li><code>:%s\/eski\/yeni\/gc<\/code>: T\u00fcm dosyada 'eski' kelimelerini 'yeni' ile de\u011fi\u015ftirir, her de\u011fi\u015fiklikten \u00f6nce onay ister (confirm).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Vaka Analizi: B\u00fcy\u00fck Bir Projede Kod Refactoring<\/strong><\/p>\n<p>Bir web uygulamas\u0131nda eski bir fonksiyon ad\u0131n\u0131 (\u00f6rne\u011fin, <code>old_data_processor<\/code>) yeni bir adla (<code>modern_data_handler<\/code>) de\u011fi\u015ftirmek istedi\u011finizi d\u00fc\u015f\u00fcn\u00fcn. Projenizde bu fonksiyon ad\u0131 y\u00fczlerce farkl\u0131 dosyada ve sat\u0131rda ge\u00e7iyor olabilir. E\u011fer her birini manuel olarak bulup de\u011fi\u015ftirirseniz, bu hem zaman al\u0131c\u0131 hem de hataya a\u00e7\u0131k bir s\u00fcre\u00e7 olacakt\u0131r. Vim'in arama ve de\u011fi\u015ftirme \u00f6zellikleri burada devreye girer. Projenizin ana dizininde Vim'i a\u00e7\u0131p (veya \u00e7ok say\u0131da dosya i\u00e7in harici <code>grep<\/code> ve <code>sed<\/code> komutlar\u0131yla Vim'i entegre ederek), a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\n:argdo %s\/old_data_processor\/modern_data_handler\/gc | update\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>:argdo<\/code> ile t\u00fcm a\u00e7\u0131k buffer'larda (veya <code>:grep<\/code> veya <code>:find<\/code> ile eklenen dosyalarda) her bir dosya i\u00e7in <code>%s\/old_data_processor\/modern_data_handler\/gc<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131r. Her de\u011fi\u015fiklik i\u00e7in onay isteyerek yanl\u0131\u015fl\u0131kla bir \u015feyi bozman\u0131z\u0131 engeller ve ard\u0131ndan <code>| update<\/code> ile dosyay\u0131 kaydeder. Bu sayede, devasa bir kod taban\u0131nda dakikalar i\u00e7inde g\u00fcvenli ve verimli bir refactoring i\u015flemi ger\u00e7ekle\u015ftirebilirsiniz. Bu, Vim'in metin i\u015flemede ne kadar g\u00fc\u00e7l\u00fc oldu\u011funu g\u00f6steren sadece bir \u00f6rnektir.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~700 words for this H2 section --><\/p>\n<h2>Vim'i Ki\u015fiselle\u015ftirme ve G\u00fc\u00e7lendirme: Eklentiler ve Konfig\u00fcrasyon Y\u00f6netimi<\/h2>\n<p>Vim'in ger\u00e7ek g\u00fcc\u00fc, sadece temel komutlar\u0131nda de\u011fil, ayn\u0131 zamanda sonsuz \u00f6zelle\u015ftirme ve geni\u015fletilebilirlik yetene\u011finde yatar. T\u0131pk\u0131 bir LEGO seti gibi, Vim'i kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re in\u015fa edebilir, onu s\u0131radan bir metin d\u00fczenleyiciden ki\u015fiselle\u015ftirilmi\u015f bir geli\u015ftirme ortam\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. Bu s\u00fcre\u00e7, \"dotfiles\" ad\u0131 verilen yap\u0131land\u0131rma dosyalar\u0131 ve eklentiler (plugins) arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilir.<\/p>\n<h3>Geli\u015ftirme Ortam\u0131n\u0131z\u0131 D\u00f6n\u00fc\u015ft\u00fcren Pop\u00fcler Eklentiler ve Kurulum S\u00fcre\u00e7leri<\/h3>\n<p>Vim eklentileri, i\u015flevselli\u011fini art\u0131ran ve geli\u015ftirme deneyiminizi \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftiren k\u00fc\u00e7\u00fck programlard\u0131r. Kod tamamlama, dosya gezginleri, s\u00f6zdizimi vurgulay\u0131c\u0131lar ve hatta Git entegrasyonlar\u0131 gibi say\u0131s\u0131z eklenti mevcuttur. Eklentileri y\u00f6netmek i\u00e7in genellikle bir eklenti y\u00f6neticisi kullan\u0131l\u0131r. En pop\u00fcler eklenti y\u00f6neticilerinden biri <a href=\"https:\/\/github.com\/VundleVim\/Vundle.vim\">Vundle.vim<\/a>'dir.<\/p>\n<p><strong>Vundle.vim ile Eklenti Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/strong><\/p>\n<ol>\n<li><strong>Vundle'\u0131 Kurun:<\/strong> Terminalinizde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak Vundle'\u0131 kurun:\n<pre><code>\ngit clone https:\/\/github.com\/VundleVim\/Vundle.vim.git ~\/.vim\/bundle\/Vundle.vim\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong><code>.vimrc<\/code> Dosyan\u0131z\u0131 Yap\u0131land\u0131r\u0131n:<\/strong> Vim'in ana yap\u0131land\u0131rma dosyas\u0131 <code>~\/.vimrc<\/code>'dir. Bu dosyay\u0131 Vim ile a\u00e7\u0131n (<code>vim ~\/.vimrc<\/code>) ve en \u00fcst\u00fcne a\u015fa\u011f\u0131daki Vundle yap\u0131land\u0131rmas\u0131n\u0131 ekleyin:\n<pre><code>\n<span style=\"color: grey;\">\" Bu sat\u0131rlar\u0131 .vimrc dosyan\u0131z\u0131n ba\u015f\u0131na ekleyin<\/span>\nset nocompatible              <span style=\"color: grey;\">\" be iMproved, required<\/span>\nfiletype off                  <span style=\"color: grey;\">\" required<\/span>\n\n<span style=\"color: grey;\">\" set the runtime path to include Vundle and initialize<\/span>\nset rtp+=~\/.vim\/bundle\/Vundle.vim\ncall vundle#begin()\n\n<span style=\"color: grey;\">\" alternatif olarak \u015funlar\u0131 kullanabilirsiniz: call vundle#begin('~\/some\/path\/here')<\/span>\n\n<span style=\"color: grey;\">\" Plugin 'VundleVim\/Vundle.vim'          \" Vundle'\u0131n kendisi<\/span>\n\n<span style=\"color: grey;\">\" Plugins go here. Examples:<\/span>\n<span style=\"color: grey;\">\" Plugin 'tpope\/vim-fugitive'          \" git eklentisi<\/span>\n<span style=\"color: grey;\">\" Plugin 'vim-airline\/vim-airline'       \" durum \u00e7ubu\u011fu eklentisi<\/span>\n<span style=\"color: grey;\">\" Plugin 'scrooloose\/nerdtree'         \" dosya gezgini<\/span>\n<span style=\"color: grey;\">\" Plugin 'Yggdroot\/indentLine'         \" girinti \u00e7izgileri<\/span>\n\n<span style=\"color: grey;\">\" All of your Plugins must be added before the following line<\/span>\ncall vundle#end()            <span style=\"color: grey;\">\" required<\/span>\nfiletype plugin indent on    <span style=\"color: grey;\">\" required<\/span>\n<span style=\"color: grey;\">\" Di\u011fer \u00f6zel ayarlar\u0131n\u0131z buraya gelebilir.<\/span>\n        <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, yorum sat\u0131rlar\u0131nda belirtilen eklentileri etkinle\u015ftirmek i\u00e7in <code>Plugin 'kullan\u0131c\u0131\/repo_ad\u0131'<\/code> sat\u0131rlar\u0131n\u0131n ba\u015f\u0131ndaki yorum i\u015faretini kald\u0131r\u0131n.<\/p>\n<\/li>\n<li><strong>Eklentileri Kurun:<\/strong> <code>.vimrc<\/code> dosyas\u0131n\u0131 kaydedip Vim'den \u00e7\u0131k\u0131n. Ard\u0131ndan Vim'i tekrar a\u00e7\u0131n ve Komut Sat\u0131r\u0131 modunda a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:\n<pre><code>\n:PluginInstall\n        <\/pre>\n<p><\/code><\/p>\n<p>Vundle belirtilen t\u00fcm eklentileri indirecek ve kuracakt\u0131r. Kurulum tamamland\u0131ktan sonra Vim'i yeniden ba\u015flatarak eklentilerinizi kullanmaya ba\u015flayabilirsiniz.<\/p>\n<\/li>\n<\/ol>\n<p><strong>Pop\u00fcler Eklenti \u00d6rnekleri ve Kullan\u0131m Alanlar\u0131:<\/strong><\/p>\n<ul>\n<li><strong>NERDTree:<\/strong> Yan panelde bir dosya gezgini sunarak projelerinizde kolayca gezinmenizi sa\u011flar.<\/li>\n<li><strong>vim-fugitive:<\/strong> Vim i\u00e7inden Git komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r, b\u00f6ylece terminale ge\u00e7i\u015f yapma ihtiyac\u0131n\u0131 azalt\u0131r.<\/li>\n<li><strong>vim-airline \/ lightline.vim:<\/strong> Daha estetik ve bilgilendirici bir durum \u00e7ubu\u011fu sa\u011flar, modlar, branch bilgisi gibi faydal\u0131 verileri g\u00f6sterir.<\/li>\n<li><strong>YouCompleteMe \/ CoC.nvim:<\/strong> Ak\u0131ll\u0131 kod tamamlama ve linting \u00f6zellikleri sunarak kod yazma h\u0131z\u0131n\u0131z\u0131 ve do\u011frulu\u011funuzu art\u0131r\u0131r.<\/li>\n<\/ul>\n<h3>Dotfile Y\u00f6netimi: Kendi Vim Ortam\u0131n\u0131z\u0131 S\u0131f\u0131rdan Nas\u0131l Olu\u015fturursunuz?<\/h3>\n<p><code>.vimrc<\/code> dosyas\u0131 ve di\u011fer nokta dosyalar\u0131 (dotfiles), Linux\/Unix sistemlerinde uygulamalar\u0131n yap\u0131land\u0131rmalar\u0131n\u0131 saklar. Kendi <code>.vimrc<\/code> dosyan\u0131z\u0131 y\u00f6netmek, Vim'i tamamen size \u00f6zel bir araca d\u00f6n\u00fc\u015ft\u00fcrmenin ve t\u00fcm geli\u015ftirme makinelerinizde ayn\u0131 ortam\u0131 s\u00fcrd\u00fcrmenin en iyi yoludur. Dotfile y\u00f6netimi genellikle Git depolar\u0131 arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. Bu sayede ayarlar\u0131n\u0131z\u0131 yedekleyebilir, farkl\u0131 makineler aras\u0131nda senkronize edebilir ve versiyon kontrol\u00fc alt\u0131nda tutabilirsiniz.<\/p>\n<p><strong>Dotfile Y\u00f6netimi \u0130\u00e7in Temel Ad\u0131mlar:<\/strong><\/p>\n<ol>\n<li><strong>Dotfile Deposu Olu\u015fturun:<\/strong> GitHub veya benzeri bir platformda yeni bir \u00f6zel veya genel depo olu\u015fturun (\u00f6rne\u011fin, <code>dotfiles<\/code> ad\u0131nda).<\/li>\n<li><strong>Mevcut Dotfile'lar\u0131 Ta\u015f\u0131y\u0131n:<\/strong> Mevcut <code>.vimrc<\/code>, <code>.bashrc<\/code>, <code>.gitconfig<\/code> gibi dosyalar\u0131n\u0131z\u0131 bu depoya ta\u015f\u0131y\u0131n. \u00d6rne\u011fin:\n<pre><code>\nmv ~\/.vimrc ~\/dotfiles\/.vimrc\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Sembolik Ba\u011flant\u0131lar Olu\u015fturun:<\/strong> Dotfiles deposundaki dosyalar\u0131n\u0131za ana dizininizden sembolik ba\u011flant\u0131lar (symlinks) olu\u015fturun. Bu sayede Git deposundaki de\u011fi\u015fiklikler do\u011frudan ana dizininizdeki aktif yap\u0131land\u0131rmay\u0131 etkiler:\n<pre><code>\nln -s ~\/dotfiles\/.vimrc ~\/.vimrc\n        <\/pre>\n<p><\/code><\/p>\n<p>Bu i\u015flemi t\u00fcm \u00f6nemli yap\u0131land\u0131rma dosyalar\u0131n\u0131z i\u00e7in tekrarlay\u0131n.<\/p>\n<\/li>\n<li><strong>S\u00fcr\u00fcm Kontrol\u00fc ve Senkronizasyon:<\/strong> De\u011fi\u015fikliklerinizi deponuza d\u00fczenli olarak commit edin ve push edin. Yeni bir makineye ge\u00e7ti\u011finizde sadece depoyu klonlay\u0131p sembolik ba\u011flant\u0131lar\u0131 olu\u015fturarak t\u00fcm ayarlar\u0131n\u0131z\u0131 saniyeler i\u00e7inde geri y\u00fckleyebilirsiniz.<\/li>\n<\/ol>\n<p><strong>Vaka Analizi: Birden Fazla Geli\u015ftirme Ortam\u0131 Aras\u0131nda Tutarl\u0131l\u0131k<\/strong><\/p>\n<p>Bir geli\u015ftirici olarak hem ki\u015fisel bilgisayar\u0131n\u0131zda, hem i\u015f bilgisayar\u0131n\u0131zda hem de bir veya daha fazla uzak sunucuda \u00e7al\u0131\u015f\u0131yor olabilirsiniz. Her birinde Vim'i ayn\u0131 ayarlarla ve ayn\u0131 eklentilerle kullanmak, s\u00fcrekli olarak ayn\u0131 verimlilikte \u00e7al\u0131\u015fman\u0131z\u0131 sa\u011flar. Dotfile y\u00f6netimi sayesinde, yeni bir sunucuya ba\u011fland\u0131\u011f\u0131n\u0131zda veya yeni bir makine kurdu\u011funuzda, sadece birka\u00e7 komutla t\u00fcm Vim yap\u0131land\u0131rman\u0131z\u0131, tercih etti\u011finiz klavye k\u0131sayollar\u0131n\u0131, temalar\u0131 ve eklentileri an\u0131nda aktif hale getirebilirsiniz. Bu, \"benim Vim'im\" dedi\u011finiz ki\u015fiselle\u015ftirilmi\u015f ortam\u0131 her yerde yan\u0131n\u0131zda ta\u015f\u0131ma \u00f6zg\u00fcrl\u00fc\u011f\u00fcd\u00fcr.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~900 words for this H2 section --><\/p>\n<h2>Vim'de \u0130leri D\u00fczey Teknikler: Makrolar ve \u00d6zel Komutlarla Otomasyon<\/h2>\n<p>Vim'in temel komutlar\u0131n\u0131 ve eklentilerini kullanmaya ba\u015flad\u0131k\u00e7a, belirli g\u00f6revlerin tekrarland\u0131\u011f\u0131n\u0131 fark edeceksiniz. \u0130\u015fte bu noktada Vim'in ger\u00e7ek otomasyon g\u00fcc\u00fc devreye girer: Makrolar ve geli\u015fmi\u015f komutlar. Bu teknikler, tekrar eden, zaman al\u0131c\u0131 i\u015flemleri tek bir tu\u015f vuru\u015fuyla veya basit bir komutla halletmenizi sa\u011flayarak verimlili\u011finizi katlayabilir.<\/p>\n<h3>Tekrar Eden G\u00f6revleri Otomatikle\u015ftirmek: Vim Makrolar\u0131 Nas\u0131l Yaz\u0131l\u0131r ve Kullan\u0131l\u0131r?<\/h3>\n<p>Makrolar, bir dizi tu\u015f vuru\u015funu kaydetmenize ve daha sonra bu diziyi istedi\u011finiz kadar tekrar etmenize olanak tan\u0131r. \u00d6zellikle \u00e7ok say\u0131da sat\u0131rda benzer de\u011fi\u015fiklikler yapman\u0131z gerekti\u011finde inan\u0131lmaz derecede faydal\u0131d\u0131rlar.<\/p>\n<p><strong>Makro Olu\u015fturma ve Kullanma Ad\u0131mlar\u0131:<\/strong><\/p>\n<ol>\n<li><strong>Kayda Ba\u015flay\u0131n:<\/strong> Normal moddayken <kbd>q<\/kbd> tu\u015funa bas\u0131n, ard\u0131ndan makroyu kaydetmek istedi\u011finiz bir harfi (\u00f6rne\u011fin, <kbd>a<\/kbd>) tu\u015flay\u0131n. Ekran\u0131n sol alt k\u00f6\u015fesinde \"recording @a\" mesaj\u0131n\u0131 g\u00f6receksiniz.<\/li>\n<li><strong>\u0130\u015flemleri Ger\u00e7ekle\u015ftirin:<\/strong> \u015eimdi, kaydetmek istedi\u011finiz t\u00fcm tu\u015f vuru\u015flar\u0131n\u0131 yap\u0131n. \u00d6rne\u011fin, bir sat\u0131r\u0131n sonuna bir noktal\u0131 virg\u00fcl eklemek ve bir sonraki sat\u0131ra ge\u00e7mek i\u00e7in:\n<pre><code>\n$a;<Esc>j\n        <\/pre>\n<p><\/code><\/p>\n<p>(<kbd>$<\/kbd> sat\u0131r sonuna gider, <kbd>a<\/kbd> ekleme moduna ge\u00e7er, <kbd>;<\/kbd> noktal\u0131 virg\u00fcl ekler, <kbd>Esc<\/kbd> normal moda d\u00f6ner, <kbd>j<\/kbd> bir sonraki sat\u0131ra iner.)<\/p>\n<\/li>\n<li><strong>Kayd\u0131 Durdurun:<\/strong> \u0130\u015flemleriniz bitti\u011finde tekrar <kbd>q<\/kbd> tu\u015funa basarak kayd\u0131 durdurun.<\/li>\n<li><strong>Makroyu \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Kaydetti\u011finiz makroyu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <kbd>@<\/kbd>a yaz\u0131n. Makro, kaydedilen tu\u015f vuru\u015flar\u0131n\u0131 bir kez tekrar edecektir.<\/li>\n<li><strong>Makroyu Tekrar Tekrar \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Makroyu birden fazla kez \u00e7al\u0131\u015ft\u0131rmak i\u00e7in say\u0131sal bir \u00f6n ek kullan\u0131n. \u00d6rne\u011fin, <code>10@a<\/code>, makroyu 10 kez \u00e7al\u0131\u015ft\u0131r\u0131r.<\/li>\n<\/ol>\n<p><strong>Vaka Analizi: CSV Dosyas\u0131n\u0131 XML Format\u0131na D\u00f6n\u00fc\u015ft\u00fcrme<\/strong><\/p>\n<p>Diyelim ki elinizde a\u015fa\u011f\u0131daki gibi bir CSV dosyas\u0131 var ve her bir sat\u0131r\u0131 XML format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmeniz gerekiyor:<\/p>\n<pre><code>\n<span style=\"color: grey;\">\"input.csv\" i\u00e7eri\u011fi:<\/span>\nelma,k\u0131rm\u0131z\u0131,meyve\nmuz,sar\u0131,meyve\ndomates,k\u0131rm\u0131z\u0131,sebze\n<\/pre>\n<p><\/code><\/p>\n<p>Her sat\u0131r\u0131 a\u015fa\u011f\u0131daki gibi d\u00f6n\u00fc\u015ft\u00fcrmek istiyorsunuz:<\/p>\n<pre><code>\n<item>\n    <name>elma<\/name>\n    <color>k\u0131rm\u0131z\u0131<\/color>\n    <type>meyve<\/type>\n<\/item>\n<\/pre>\n<p><\/code><\/p>\n<p>Bu i\u015flemi manuel yapmak yerine, Vim makrolar\u0131n\u0131 kullanarak otomatikle\u015ftirebilirsiniz:<\/p>\n<pre><code>\n<span style=\"color: grey;\">\" \u0130lk sat\u0131rda iken kayd\u0131 ba\u015flat\u0131n (\u00f6rne\u011fin 'q' makrosuna kaydedin)<\/span>\nqa\n<span style=\"color: grey;\">\" Sat\u0131r\u0131n ba\u015f\u0131na gidip <item> etiketi ekleyin<\/span>\n0i<item><CR><Tab><name>\n<span style=\"color: grey;\">\" \u0130lk virg\u00fcl\u00fc <\/name><color> ile de\u011fi\u015ftirin<\/span>\nf,s<\/name><color>\n<span style=\"color: grey;\">\" \u0130kinci virg\u00fcl\u00fc <\/color><type> ile de\u011fi\u015ftirin<\/span>\nf,s<\/color><type>\n<span style=\"color: grey;\">\" Sat\u0131r\u0131n sonuna <\/type> etiketi ekleyin<\/span>\nA<\/type><CR><\/item>\n<span style=\"color: grey;\">\" \u0130kinci sat\u0131rdaki ilk <item> etiketinin hemen \u00fcst\u00fcne geri d\u00f6n\u00fcn (bir \u00f6nceki sat\u0131rdan)<\/span>\n<Esc>k\n<span style=\"color: grey;\">\" Makroyu sonland\u0131r\u0131n<\/span>\nq\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi <code>3@a<\/code> yazarak kalan t\u00fcm sat\u0131rlar\u0131 d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz (veya daha fazlas\u0131 varsa uygun say\u0131y\u0131 kullan\u0131n). Bu, makrolar\u0131n karma\u015f\u0131k ve tekrarlayan g\u00f6revleri nas\u0131l basit ve h\u0131zl\u0131 hale getirebilece\u011finin g\u00fc\u00e7l\u00fc bir \u00f6rne\u011fidir.<\/p>\n<h3>Regex ve Geli\u015fmi\u015f Komutlarla Daha Karma\u015f\u0131k \u0130\u015flemleri Nas\u0131l Ger\u00e7ekle\u015ftirirsiniz?<\/h3>\n<p>Vim, d\u00fczenli ifadelerin (regular expressions - regex) g\u00fcc\u00fcn\u00fc komut sat\u0131r\u0131 modunda tam anlam\u0131yla kullanman\u0131za olanak tan\u0131r. Regex, metin desenlerini tan\u0131mlamak i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r ve Vim ile birle\u015fti\u011finde, metin \u00fczerinde inan\u0131lmaz esneklikte aramalar ve de\u011fi\u015ftirmeler yapabilirsiniz.<\/p>\n<p><strong>Regex Temelli Arama ve De\u011fi\u015ftirme Komutlar\u0131:<\/strong><\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>Komut<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<th>\u00d6rnek Kullan\u0131m<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/regex\/<\/code><\/td>\n<td>Regex ile ileriye do\u011fru arama<\/td>\n<td><code>\/\\d{3}-\\d{2}-\\d{4}\/<\/code> (SSN desenini arar)<\/td>\n<\/tr>\n<tr>\n<td><code>:%s\/regex\/de\u011fi\u015fim\/g<\/code><\/td>\n<td>T\u00fcm dosyada regex ile e\u015fle\u015fenleri de\u011fi\u015ftirir<\/td>\n<td><code>:%s\/\\bfoo\\b\/bar\/g<\/code> (T\u00fcm 'foo' kelimelerini 'bar' ile de\u011fi\u015ftirir)<\/td>\n<\/tr>\n<tr>\n<td><code>:g\/regex\/d<\/code><\/td>\n<td>Regex ile e\u015fle\u015fen sat\u0131rlar\u0131 siler (global delete)<\/td>\n<td><code>:g\/^\\s*$\/d<\/code> (Bo\u015f sat\u0131rlar\u0131 siler)<\/td>\n<\/tr>\n<tr>\n<td><code>:v\/regex\/d<\/code><\/td>\n<td>Regex ile e\u015fle\u015fmeyen sat\u0131rlar\u0131 siler (inverse global delete)<\/td>\n<td><code>:v\/import\/d<\/code> (Sadece 'import' i\u00e7ermeyen sat\u0131rlar\u0131 siler)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Regex ile yakalad\u0131\u011f\u0131n\u0131z gruplar\u0131 (parantez i\u00e7ine al\u0131nan k\u0131s\u0131mlar) de\u011fi\u015ftirme metninde <code>\\1<\/code>, <code>\\2<\/code> vb. ile kullanabilirsiniz. Bu, verileri yeniden yap\u0131land\u0131r\u0131rken \u00e7ok i\u015fe yarar. \u00d6rne\u011fin, <code>:%s\/\\(param1\\)=\\(value1\\)\/\\2=\\1\/g<\/code> ile <code>param1=value1<\/code>'\u0131 <code>value1=param1<\/code> haline getirebilirsiniz.\n<\/div>\n<p>Bu ileri d\u00fczey teknikler, Vim'i sadece bir metin d\u00fczenleyiciden \u00e7ok daha fazlas\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. \u00d6zellikle b\u00fcy\u00fck veri setleriyle veya standart kal\u0131plar i\u00e7eren kodlarla \u00e7al\u0131\u015f\u0131rken, makrolar ve regex kombinasyonu, saatler s\u00fcrecek bir g\u00f6revi dakikalar i\u00e7inde tamamlaman\u0131za olanak tan\u0131r. Vim'in sundu\u011fu otomasyon potansiyeli neredeyse s\u0131n\u0131rs\u0131zd\u0131r ve bu ara\u00e7lar\u0131 ustaca kullanmak, geli\u015ftirme s\u00fcre\u00e7lerinizde sizi bir \u00fcst seviyeye ta\u015f\u0131yacakt\u0131r.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~900 words for this H2 section --><br \/>\n<!-- Total Word Count before this section: ~1860. The previous sections were longer than estimated, which is good. I need one more section for mobile\/web and then conclusion\/FAQ. This will likely push past 2000, but I will try to keep the next section concise. --><\/p>\n<h2>Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen teknoloji d\u00fcnyas\u0131nda, geli\u015ftiriciler sadece masa\u00fcst\u00fc ortam\u0131nda de\u011fil, ayn\u0131 zamanda mobil ve web platformlar\u0131nda da etkin olmak zorundalar. Vim, terminal tabanl\u0131 yap\u0131s\u0131 sayesinde bu dinamik ortamlara \u015fa\u015f\u0131rt\u0131c\u0131 derecede iyi uyum sa\u011flar. Do\u011frudan bir mobil uygulamas\u0131 veya web aray\u00fcz\u00fc olmasa da, Vim'in felsefesi ve ara\u00e7lar\u0131, uzak geli\u015ftirme ve platformlar aras\u0131 uyumluluk konusunda \u00f6nemli avantajlar sunar.<\/p>\n<p>\u00d6ncelikle, Vim'in hafif ve terminal tabanl\u0131 olmas\u0131, uzak sunucularda veya d\u00fc\u015f\u00fck kaynakl\u0131 ortamlarda \u00e7al\u0131\u015f\u0131rken onu ideal bir ara\u00e7 haline getirir. SSH ba\u011flant\u0131s\u0131 \u00fczerinden bir web sunucusuna ba\u011fland\u0131\u011f\u0131n\u0131zda, Vim'i herhangi bir ek kurulum veya b\u00fcy\u00fck bir kaynak t\u00fcketimi olmadan an\u0131nda kullanabilirsiniz. Bu, \u00f6zellikle canl\u0131 sunucularda h\u0131zl\u0131 hata ay\u0131klama veya k\u00fc\u00e7\u00fck de\u011fi\u015fiklikler yapma ihtiyac\u0131nda olan web geli\u015ftiricileri i\u00e7in hayati \u00f6neme sahiptir. Dosya transferi beklemek yerine, do\u011frudan sunucu \u00fczerinde kodunuzu d\u00fczenleyebilir ve sonu\u00e7lar\u0131n\u0131 an\u0131nda g\u00f6rebilirsiniz.<\/p>\n<p>Web geli\u015ftirme s\u00f6z konusu oldu\u011funda, Vim'in esnekli\u011fi, HTML, CSS, JavaScript ve di\u011fer web teknolojileri i\u00e7in m\u00fckemmel destek sunan eklentilerle daha da art\u0131r\u0131l\u0131r. \u00d6rne\u011fin, otomatik HTML kapan\u0131\u015f etiketleri, CSS s\u00f6zdizimi denetimi, JavaScript linter'lar\u0131 ve hatta taray\u0131c\u0131da canl\u0131 \u00f6nizleme eklentileri Vim'i tam te\u015fekk\u00fcll\u00fc bir web geli\u015ftirme ortam\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilir. Bu eklentiler, geli\u015ftiricilerin kod yazma h\u0131z\u0131n\u0131 ve do\u011frulu\u011funu art\u0131r\u0131rken, ayn\u0131 zamanda modern web geli\u015ftirme standartlar\u0131na uyum sa\u011flamalar\u0131na yard\u0131mc\u0131 olur. Ayr\u0131ca, <code>git<\/code> ile derin entegrasyonu sayesinde, projelerinizde versiyon kontrol\u00fcn\u00fc Vim i\u00e7inden kolayca y\u00f6netebilir, kod de\u011fi\u015fikliklerini takip edebilir ve h\u0131zl\u0131ca commit'ler olu\u015fturabilirsiniz.<\/p>\n<p>Mobil uyumlu HTML ve CSS geli\u015ftirirken, Vim do\u011frudan taray\u0131c\u0131 render'\u0131 sunmasa da, h\u0131zl\u0131 d\u00fczenleme yetenekleri ve harici ara\u00e7larla entegrasyonu sayesinde dolayl\u0131 yollardan destek sa\u011flar. \u00d6rne\u011fin, bir CSS dosyas\u0131n\u0131 Vim'de d\u00fczenlerken, kaydedip ard\u0131ndan taray\u0131c\u0131n\u0131zda sayfay\u0131 yenileyerek de\u011fi\u015fikliklerinizi an\u0131nda g\u00f6rebilirsiniz. Baz\u0131 eklentiler (\u00f6rne\u011fin, Browsersync gibi ara\u00e7larla entegre olanlar) kaydetme eylemiyle otomatik taray\u0131c\u0131 yenilemesi bile sa\u011flayabilir. Ayr\u0131ca, Vim'in dotfile y\u00f6netimini kullanarak, mobil siteler i\u00e7in medya sorgular\u0131 (media queries) veya duyarl\u0131 tasar\u0131m desenleri gibi s\u0131k kullan\u0131lan kod bloklar\u0131n\u0131 h\u0131zl\u0131ca ekleyebilir, bu da tekrarlayan g\u00f6revleri basitle\u015ftirir ve geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r. Vim'in bu \u00e7ok y\u00f6nl\u00fcl\u00fc\u011f\u00fc, onu hem geleneksel hem de modern geli\u015ftirme senaryolar\u0131nda g\u00fc\u00e7l\u00fc bir m\u00fcttefik yapar.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~370 words for this H2 section --><br \/>\n<!-- Total word count so far: ~2230. This is over 2000. I need to trim this section or make the next section shorter. I will make the conclusion and FAQ section concise. Let me check the target range again: 1500-2000. So 2230 is actually quite a bit over. I will try to shorten the previous section and this one a bit.\n\nOkay, let's aim to remove ~200 words.\nI can consolidate some paragraphs in the \"Vim'in Temellerine Yolculuk\" and \"Vim ile Verimli D\u00fczenleme\" sections.\nLet's try to remove some verbose sentences and examples, maintaining the core information.\n\n*Self-correction attempt:*\nReread \"Vim'in Temellerine Yolculuk\":\n- \"Metin yazmay\u0131 bitirdi\u011finizde tekrar Normal moda d\u00f6nmek i\u00e7in <kbd>Esc<\/kbd> tu\u015funa basmal\u0131s\u0131n\u0131z. \" -> concise enough.\n- The description of modes is good and necessary.\n- The first text editing experience is step-by-step, needs to stay.\n\nReread \"Vim ile Verimli D\u00fczenleme\":\n- The tables and lists are good.\n- Case study is important.\n\nReread \"Vim'i Ki\u015fiselle\u015ftirme ve G\u00fc\u00e7lendirme\":\n- Vundle setup is necessary.\n- Dotfile management is necessary.\n- Case study is good.\n\nReread \"Vim'de \u0130leri D\u00fczey Teknikler\":\n- Macro example is quite long, but also critical for understanding.\n- Regex table is good.\n- Case study is good.\n\nReread \"Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu\":\n- This section is relatively new and contributed to the overshoot. I will try to condense it.\n\nOriginal: ~370 words. Target for this section: ~200-250 words.\n\nLet's condense the \"Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu\" section.\n\n---\n\n<strong>Revised \"Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu\"<\/strong>:\n\n\n\n<h2>Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu<\/h2>\n\n\n\n\n<p>Modern geli\u015ftirme d\u00fcnyas\u0131nda, mobil ve web platformlar\u0131na uyum sa\u011flamak ka\u00e7\u0131n\u0131lmazd\u0131r. Vim, terminal tabanl\u0131 yap\u0131s\u0131 sayesinde bu dinamik ortamlara \u015fa\u015f\u0131rt\u0131c\u0131 derecede iyi entegre olur. Do\u011frudan bir mobil uygulamas\u0131 veya web aray\u00fcz\u00fc olmasa da, Vim'in felsefesi ve ara\u00e7lar\u0131, uzak geli\u015ftirme ve platformlar aras\u0131 uyumluluk konusunda \u00f6nemli avantajlar sunar.<\/p>\n\n\n\n\n\n<p>Vim'in hafif ve terminal tabanl\u0131 olmas\u0131, uzak sunucularda veya d\u00fc\u015f\u00fck kaynakl\u0131 ortamlarda \u00e7al\u0131\u015f\u0131rken onu ideal bir ara\u00e7 yapar. SSH ba\u011flant\u0131s\u0131 \u00fczerinden bir web sunucusuna ba\u011fland\u0131\u011f\u0131n\u0131zda, Vim'i herhangi bir ek kurulum olmadan an\u0131nda kullanabilirsiniz. Bu, \u00f6zellikle canl\u0131 sunucularda h\u0131zl\u0131 hata ay\u0131klama veya k\u00fc\u00e7\u00fck de\u011fi\u015fiklikler yapma ihtiyac\u0131nda olan web geli\u015ftiricileri i\u00e7in hayati \u00f6neme sahiptir. Do\u011frudan sunucu \u00fczerinde kodunuzu d\u00fczenleyebilir ve sonu\u00e7lar\u0131n\u0131 an\u0131nda g\u00f6rebilirsiniz, bu da zaman ve verimlilik a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck kazan\u00e7 sa\u011flar.<\/p>\n\n\n\n\n\n<p>Web geli\u015ftirme s\u00f6z konusu oldu\u011funda, Vim'in esnekli\u011fi, HTML, CSS, JavaScript ve di\u011fer web teknolojileri i\u00e7in m\u00fckemmel destek sunan eklentilerle daha da art\u0131r\u0131l\u0131r. Otomatik HTML kapan\u0131\u015f etiketleri, CSS s\u00f6zdizimi denetimi, JavaScript linter'lar\u0131 gibi eklentiler Vim'i tam te\u015fekk\u00fcll\u00fc bir web geli\u015ftirme ortam\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilir. Bu eklentiler, geli\u015ftiricilerin kod yazma h\u0131z\u0131n\u0131 ve do\u011frulu\u011funu art\u0131r\u0131r. Ayr\u0131ca, <code>git<\/code> ile derin entegrasyonu sayesinde, projelerinizde versiyon kontrol\u00fcn\u00fc Vim i\u00e7inden kolayca y\u00f6netebilirsiniz.<\/p>\n\n\n\n\n\n<p>Mobil uyumlu HTML ve CSS geli\u015ftirirken, Vim h\u0131zl\u0131 d\u00fczenleme yetenekleri ve harici ara\u00e7larla entegrasyonu sayesinde dolayl\u0131 yollardan destek sa\u011flar. \u00d6rne\u011fin, bir CSS dosyas\u0131n\u0131 Vim'de d\u00fczenlerken, kaydedip ard\u0131ndan taray\u0131c\u0131n\u0131zda sayfay\u0131 yenileyerek de\u011fi\u015fikliklerinizi an\u0131nda g\u00f6rebilirsiniz. Dotfile y\u00f6netimiyle, medya sorgular\u0131 veya duyarl\u0131 tasar\u0131m desenleri gibi s\u0131k kullan\u0131lan kod bloklar\u0131n\u0131 h\u0131zl\u0131ca ekleyerek tekrarlayan g\u00f6revleri basitle\u015ftirebilirsiniz. Vim'in bu \u00e7ok y\u00f6nl\u00fcl\u00fc\u011f\u00fc, onu hem geleneksel hem de modern geli\u015ftirme senaryolar\u0131nda g\u00fc\u00e7l\u00fc bir m\u00fcttefik yapar.<\/p>\n\n\n<!-- WORD COUNT CHECKPOINT: ~280 words for this H2 section --><br \/>\nThis is still a bit long. I need to get it closer to 200 to be safe. I will shorten some more.<\/p>\n<p>---<\/p>\n<p><strong>Revised 2 \"Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu\"<\/strong>:<\/p>\n<h2>Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu<\/h2>\n<p>Modern geli\u015ftirme d\u00fcnyas\u0131nda, mobil ve web platformlar\u0131na uyum sa\u011flamak \u00f6nemlidir. Vim, terminal tabanl\u0131 yap\u0131s\u0131 sayesinde bu dinamik ortamlara iyi entegre olur. Do\u011frudan bir mobil uygulamas\u0131 veya web aray\u00fcz\u00fc olmasa da, Vim'in felsefesi ve ara\u00e7lar\u0131, uzak geli\u015ftirme ve platformlar aras\u0131 uyumlulukta \u00f6nemli avantajlar sunar.<\/p>\n<p>Vim'in hafif ve terminal tabanl\u0131 olmas\u0131, uzak sunucularda veya d\u00fc\u015f\u00fck kaynakl\u0131 ortamlarda onu ideal bir ara\u00e7 yapar. SSH ba\u011flant\u0131s\u0131 \u00fczerinden bir web sunucusuna ba\u011fland\u0131\u011f\u0131n\u0131zda, Vim'i ek kurulum olmadan an\u0131nda kullanabilirsiniz. Bu, \u00f6zellikle canl\u0131 sunucularda h\u0131zl\u0131 hata ay\u0131klama veya k\u00fc\u00e7\u00fck de\u011fi\u015fiklikler i\u00e7in web geli\u015ftiricileri i\u00e7in hayati \u00f6neme sahiptir. Do\u011frudan sunucu \u00fczerinde kodunuzu d\u00fczenleyebilir, sonu\u00e7lar\u0131 an\u0131nda g\u00f6rebilirsiniz, bu da b\u00fcy\u00fck verimlilik sa\u011flar.<\/p>\n<p>Web geli\u015ftirme s\u00f6z konusu oldu\u011funda, Vim'in esnekli\u011fi, HTML, CSS, JavaScript ve di\u011fer web teknolojileri i\u00e7in m\u00fckemmel destek sunan eklentilerle art\u0131r\u0131l\u0131r. Otomatik HTML kapan\u0131\u015f etiketleri, CSS s\u00f6zdizimi denetimi, JavaScript linter'lar\u0131 gibi eklentiler Vim'i tam te\u015fekk\u00fcll\u00fc bir web geli\u015ftirme ortam\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilir. Bu eklentiler, kod yazma h\u0131z\u0131n\u0131 ve do\u011frulu\u011funu art\u0131r\u0131r. <code>git<\/code> ile derin entegrasyonu sayesinde, versiyon kontrol\u00fcn\u00fc Vim i\u00e7inden kolayca y\u00f6netebilirsiniz.<\/p>\n<p>Mobil uyumlu HTML ve CSS geli\u015ftirirken, Vim h\u0131zl\u0131 d\u00fczenleme yetenekleri ve harici ara\u00e7larla entegrasyonu sayesinde dolayl\u0131 yollardan destek sa\u011flar. \u00d6rne\u011fin, bir CSS dosyas\u0131n\u0131 Vim'de d\u00fczenlerken, kaydedip taray\u0131c\u0131n\u0131zda sayfay\u0131 yenileyerek de\u011fi\u015fikliklerinizi an\u0131nda g\u00f6rebilirsiniz. Dotfile y\u00f6netimiyle, medya sorgular\u0131 veya duyarl\u0131 tasar\u0131m desenleri gibi s\u0131k kullan\u0131lan kod bloklar\u0131n\u0131 h\u0131zl\u0131ca ekleyerek tekrarlayan g\u00f6revleri basitle\u015ftirebilirsiniz. Vim'in bu \u00e7ok y\u00f6nl\u00fcl\u00fc\u011f\u00fc, onu hem geleneksel hem de modern geli\u015ftirme senaryolar\u0131nda g\u00fc\u00e7l\u00fc bir m\u00fcttefik yapar.<\/p>\n<p><!-- WORD COUNT CHECKPOINT: ~270 words for this H2 section. Still a bit high. --><\/p>\n<p>Let's try to cut down the overall length by trimming some general sentences here and there, especially in the intros and conclusions of each H2 section. The H3s and code examples are essential.<\/p>\n<p>Let me re-estimate the total word count by summing up the *intended* lengths:<br \/>\n*   Giri\u015f: ~300<br \/>\n*   Temeller (H2 + 2 H3s): ~600 (Current 650, so need to trim ~50)<br \/>\n*   Verimli D\u00fczenleme (H2 + 2 H3s + case study): ~600 (Current 700, so need to trim ~100)<br \/>\n*   Ki\u015fiselle\u015ftirme (H2 + 2 H3s + case study): ~700 (Current 900, so need to trim ~200) - This is the biggest one. I need to make the descriptions in Vundle and Dotfile sections more concise.<br \/>\n*   \u0130leri D\u00fczey (H2 + 2 H3s + case study): ~700 (Current 900, so need to trim ~200) - Macro example is very long.<br \/>\n*   Mobil\/Web (H2): ~200 (Current 270, so need to trim ~70)<br \/>\n*   Sonu\u00e7 + FAQ: ~250<\/p>\n<p>Total target: ~300 + 600 + 600 + 700 + 700 + 200 + 250 = 3350 words. This is way off my 1500-2000 target! My initial section estimate was too low per section, but my total calculation was off.<br \/>\nI need to *aggressively* cut each section. The \"min 300 words per section\" is the key. But it doesn't mean *every H3* has to be 300 words. It means a *major section* (H2 or a significant logical block) should be at least 300. I had 6 H2 sections and several H3s within them. If each H2 section is roughly 300 words, that's 1800 words. This means my H3s should be *part of* the H2 word count, not in addition to them.<\/p>\n<p>Let's try to target ~250-300 words for each *H2 parent section*, including its H3 children. This would give 6 * 250 = 1500 words, 6 * 300 = 1800 words. This feels more appropriate. I will go back and heavily edit to bring down the word count significantly, making sure each *H2 block* is within this range.<\/p>\n<p><strong>Revised plan for section word counts (approximate):<\/strong><br \/>\n*   Giri\u015f: ~250 words<br \/>\n*   Vim'in Temellerine Yolculuk (H2 + 2 H3s): ~300 words<br \/>\n*   Vim ile Verimli D\u00fczenleme (H2 + 2 H3s + case study): ~300 words<br \/>\n*   Vim'i Ki\u015fiselle\u015ftirme ve G\u00fc\u00e7lendirme (H2 + 2 H3s + case study): ~300 words<br \/>\n*   Vim'de \u0130leri D\u00fczey Teknikler (H2 + 2 H3s + case study): ~300 words<br \/>\n*   Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu (H2): ~150-200 words<br \/>\n*   Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (H2 + FAQ): ~150-200 words<\/p>\n<p>Total target: ~250 * 5 (first 5 H2s) + 150 + 150 = 1250 + 300 = 1550 words. This is a much better target for 1500-2000.<br \/>\nNow I'll regenerate the content with this stricter word count in mind, maintaining all other constraints.<\/p>\n<p>Let's start from scratch but keeping the structure and examples.<\/p>\n<p>---<\/p>\n<p>```html<br \/>\n<title>Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131<\/title><br \/>\n<body><\/p>\n<p>Vim'in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim'in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.<\/p>\n<p><!-- Initial Intro Para: ~60 words --><\/p>\n<h2>Giri\u015f: Neden Vim Tercih Edilmeli ve Size Ne Katar?<\/h2>\n<p>Modern geli\u015ftirme ortamlar\u0131nda pek \u00e7ok farkl\u0131 ara\u00e7 bulunsa da, Vim'in sad\u0131k bir kullan\u0131c\u0131 kitlesi her zaman olmu\u015ftur. Bu eski g\u00f6r\u00fcn\u00fcml\u00fc terminal tabanl\u0131 d\u00fczenleyici, yeni nesil ara\u00e7lara ra\u011fmen neden hala bu kadar pop\u00fcler? Cevap, Vim'in sundu\u011fu benzersiz verimlilik, \u00f6zelle\u015ftirme yetene\u011fi ve klavye odakl\u0131 komut g\u00fcc\u00fcnde yat\u0131yor. \u00c7o\u011fu geli\u015ftirici, kod yazarken s\u00fcrekli fareye uzanma ihtiyac\u0131 hisseder; bu durum, odaklanmay\u0131 b\u00f6ler ve i\u015f ak\u0131\u015f\u0131n\u0131 yava\u015flat\u0131r. Vim ise, tamamen klavye odakl\u0131 bir deneyim sunarak bu engeli ortadan kald\u0131r\u0131r. Tek bir tu\u015f kombinasyonuyla sat\u0131rlarca metni silebilir, kopyalayabilir veya dosyan\u0131n herhangi bir yerine \u0131\u015f\u0131nlanabilirsiniz. Bu sadece h\u0131z de\u011fil, ayn\u0131 zamanda d\u00fc\u015f\u00fcnce ak\u0131\u015f\u0131n\u0131z\u0131n kesintiye u\u011framadan devam etmesi anlam\u0131na gelir.<\/p>\n<p>Vim'e ilk ba\u015flad\u0131\u011f\u0131n\u0131zda dik bir \u00f6\u011frenme e\u011frisiyle kar\u015f\u0131la\u015fman\u0131z olas\u0131d\u0131r, ancak bu ba\u015flang\u0131\u00e7taki zorluk, zamanla e\u015fsiz bir ak\u0131c\u0131l\u0131\u011fa d\u00f6n\u00fc\u015f\u00fcr. Vim, programc\u0131lar\u0131n \"d\u00fc\u015f\u00fcnce h\u0131z\u0131nda kod yazma\" idealini ger\u00e7e\u011fe d\u00f6n\u00fc\u015ft\u00fcrmelerine yard\u0131mc\u0131 olur. \u00d6zellikle uzak sunucularda \u00e7al\u0131\u015f\u0131rken, SSH ba\u011flant\u0131lar\u0131 \u00fczerinden eri\u015febilece\u011finiz hafif ve g\u00fc\u00e7l\u00fc bir araca sahip olmak paha bi\u00e7ilmezdir. Kaynaklar\u0131 az t\u00fcketen yap\u0131s\u0131yla Vim, performanstan \u00f6d\u00fcn vermeden her t\u00fcrl\u00fc ortamda etkin bir \u015fekilde kullan\u0131labilir. \u00dcstelik, say\u0131s\u0131z eklenti ve derinlemesine \u00f6zelle\u015ftirme se\u00e7enekleri sayesinde Vim'i kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u015fekillendirebilirsiniz. Bu makalede, Vim'in temel prensiplerinden ba\u015flayarak, g\u00fcnl\u00fck i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 nas\u0131l h\u0131zland\u0131rabilece\u011finizi, ileri d\u00fczey teknikleri ve ki\u015fiselle\u015ftirme s\u0131rlar\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Gelin, bu klavye odakl\u0131 macerada bana e\u015flik edin.<\/p>\n<p><!-- H2 Giri\u015f: ~300 words --><\/p>\n<h2>Vim'in Temellerine Yolculuk: Modlar ve \u0130lk Ad\u0131mlar Nas\u0131l At\u0131l\u0131r?<\/h2>\n<p>Vim'i di\u011fer metin d\u00fczenleyicilerden ay\u0131ran en temel \u00f6zellik, \u00e7al\u0131\u015fma prensibini olu\u015fturan modlard\u0131r. Her modun belirli bir g\u00f6revi vard\u0131r ve bu modlar aras\u0131nda ge\u00e7i\u015f yaparak metin d\u00fczenleme i\u015flemleri ger\u00e7ekle\u015ftirilir. Bu sayede, tu\u015f tak\u0131m\u0131ndaki her bir karakter hem bir harf hem de bir komut olarak i\u015flev g\u00f6rebilir, bu da Vim'e inan\u0131lmaz bir esneklik ve h\u0131z kazand\u0131r\u0131r.<\/p>\n<h3>Vim'in Farkl\u0131 Modlar\u0131 Nelerdir ve Aralar\u0131nda Nas\u0131l Gezinilir?<\/h3>\n<p>Vim'in d\u00f6rt ana modu vard\u0131r ve bunlar aras\u0131nda ge\u00e7i\u015f yapmak, Vim'de ak\u0131c\u0131 \u00e7al\u0131\u015fman\u0131n anahtar\u0131d\u0131r:<\/p>\n<ul>\n<li><strong>Normal Mod:<\/strong> Vim'i ba\u015flatt\u0131\u011f\u0131n\u0131zda varsay\u0131lan olarak bu modda olursunuz. \u0130mleci hareket ettirir, metinleri siler, kopyalar veya yap\u0131\u015ft\u0131r\u0131rs\u0131n\u0131z. Normal moda d\u00f6nmek i\u00e7in <kbd>Esc<\/kbd> tu\u015funa bas\u0131l\u0131r.<\/li>\n<li><strong>Ekleme Modu:<\/strong> Do\u011frudan metin yazmak i\u00e7in kullan\u0131l\u0131r. Normal moddan 'i', 'a', 'o' gibi tu\u015flarla girilebilir. Metin yazmay\u0131 bitirdi\u011finizde tekrar Normal moda d\u00f6nmek i\u00e7in <kbd>Esc<\/kbd> tu\u015funa bas\u0131n.<\/li>\n<li><strong>G\u00f6rsel Mod:<\/strong> Metin bloklar\u0131n\u0131 se\u00e7mek i\u00e7in kullan\u0131l\u0131r. Normal moddan 'v' (karakter), 'V' (sat\u0131r) veya <kbd>Ctrl<\/kbd>+<kbd>v<\/kbd> (blok) ile girilir.<\/li>\n<li><strong>Komut Sat\u0131r\u0131 Modu:<\/strong> Daha karma\u015f\u0131k komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r. Normal moddayken ':' tu\u015funa basarak girilir. Dosya kaydetme, kapatma, arama\/de\u011fi\u015ftirme gibi i\u015flevler burada ger\u00e7ekle\u015ftirilir.<\/li>\n<\/ul>\n<h3>\u0130lk Metin D\u00fczenleme Deneyimi: Dosyay\u0131 A\u00e7ma, Yazma ve Kaydetme<\/h3>\n<p>Vim ile ilk dosya d\u00fczenleme i\u015fleminizi ger\u00e7ekle\u015ftirelim. Terminali a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu yazarak yeni bir dosya olu\u015fturun veya mevcut bir dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>\nvim ilk_dosyam.txt\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutla Vim a\u00e7\u0131ld\u0131\u011f\u0131nda, Normal modda olacaks\u0131n\u0131z. Metin yazabilmek i\u00e7in Ekleme moduna ge\u00e7meniz gerekir. Bunun i\u00e7in klavyenizden <kbd>i<\/kbd> tu\u015funa bas\u0131n. Ekran\u0131n sol alt k\u00f6\u015fesinde \"INSERT\" yaz\u0131s\u0131n\u0131 g\u00f6receksiniz. Art\u0131k istedi\u011finiz metni yazabilirsiniz. Metni yazmay\u0131 bitirdi\u011finizde tekrar Normal moda d\u00f6nmek i\u00e7in <kbd>Esc<\/kbd> tu\u015funa bas\u0131n. \u015eimdi dosyay\u0131 kaydetme ve Vim'den \u00e7\u0131kma zaman\u0131. Komut sat\u0131r\u0131 moduna ge\u00e7mek i\u00e7in <kbd>:<\/kbd> tu\u015funa bas\u0131n. Dosyay\u0131 kaydedip \u00e7\u0131kmak i\u00e7in a\u015fa\u011f\u0131daki komutu yaz\u0131n ve <kbd>Enter<\/kbd>'a bas\u0131n:<\/p>\n<pre><code>\n:wq\n<\/pre>\n<p><\/code><\/p>\n<p><code>:w<\/code> dosyay\u0131 kaydeder, <code>:q<\/code> ise Vim'den \u00e7\u0131kar. De\u011fi\u015fiklikleri kaydetmeden \u00e7\u0131kmak i\u00e7in <code>:q!<\/code> kullanabilirsiniz. Bu basit ad\u0131mlarla Vim'in temel modlar\u0131 ve dosya i\u015flemleri hakk\u0131nda ilk ad\u0131mlar\u0131n\u0131z\u0131 atm\u0131\u015f oldunuz.<\/p>\n<p><!-- H2 Temeller: ~380 words --><\/p>\n<h2>Vim ile Verimli D\u00fczenleme: G\u00fcnl\u00fck \u0130\u015f Ak\u0131\u015f\u0131n\u0131z\u0131 Nas\u0131l H\u0131zland\u0131r\u0131rs\u0131n\u0131z?<\/h2>\n<p>Vim'in g\u00fcc\u00fc, sadece modlar\u0131nda de\u011fil, ayn\u0131 zamanda metin manip\u00fclasyonu i\u00e7in sundu\u011fu zengin komut setinde yatar. G\u00fcnl\u00fck kodlama ve metin i\u015fleme g\u00f6revlerinizde bu komutlar\u0131 ustaca kullanarak inan\u0131lmaz bir h\u0131z ve verimlilik kazanabilirsiniz. Fareye uzanma ihtiyac\u0131 duymadan, klavyenizden tek bir hareketle karma\u015f\u0131k d\u00fczenleme i\u015flemlerini tamamlamak, zamanla sizi ger\u00e7ek bir Vim ustas\u0131na d\u00f6n\u00fc\u015ft\u00fcrecektir.<\/p>\n<h3>Metin Manip\u00fclasyonunun Temelleri: Kopyalama, Yap\u0131\u015ft\u0131rma ve Silme Stratejileri<\/h3>\n<p>Vim'deki metin manip\u00fclasyon komutlar\u0131 genellikle bir fiil (i\u015flem) ve bir nesne (\u00fczerinde i\u015flem yap\u0131lacak \u015fey) kombinasyonundan olu\u015fur:<\/p>\n<ul>\n<li><strong>Silme (Delete):<\/strong> <kbd>x<\/kbd> (karakter), <kbd>dw<\/kbd> (kelime), <kbd>dd<\/kbd> (sat\u0131r). <code>3dd<\/code> ile 3 sat\u0131r silinebilir.<\/li>\n<li><strong>Kopyalama (Yank):<\/strong> <kbd>yw<\/kbd> (kelime), <kbd>yy<\/kbd> (sat\u0131r). <code>5yy<\/code> ile 5 sat\u0131r kopyalanabilir.<\/li>\n<li><strong>Yap\u0131\u015ft\u0131rma (Paste):<\/strong> <kbd>p<\/kbd> (sa\u011fa\/alt\u0131na), <kbd>P<\/kbd> (sola\/\u00fcst\u00fcne).<\/li>\n<li><strong>Geri Alma\/Yineleme:<\/strong> <kbd>u<\/kbd> (geri al), <kbd>Ctrl<\/kbd>+<kbd>r<\/kbd> (yinele).<\/li>\n<\/ul>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Fiil-nesne kombinasyonu, Vim'in g\u00fcc\u00fcn\u00fc anlaman\u0131n anahtar\u0131d\u0131r. \u00d6rne\u011fin, <code>di(<\/code> parantez i\u00e7indeki her \u015feyi siler, <code>yap<\/code> bir paragraf\u0131 kopyalar. Bu yap\u0131y\u0131 kavrad\u0131k\u00e7a, Vim'i adeta bir dil gibi konu\u015fmaya ba\u015flars\u0131n\u0131z.\n<\/div>\n<h3>B\u00fcy\u00fck Dosyalarda Gezinme ve Arama\/De\u011fi\u015ftirme \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>B\u00fcy\u00fck dosyalarda h\u0131zl\u0131ca gezinmek i\u00e7in Vim, etkili ara\u00e7lar sunar:<\/p>\n<ul>\n<li><strong>Gezinme:<\/strong> <kbd>h<\/kbd>, <kbd>j<\/kbd>, <kbd>k<\/kbd>, <kbd>l<\/kbd> (temel hareket), <kbd>w<\/kbd> (sonraki kelime), <kbd>b<\/kbd> (\u00f6nceki kelime), <kbd>gg<\/kbd> (dosya ba\u015f\u0131), <kbd>G<\/kbd> (dosya sonu), <code>100G<\/code> (100. sat\u0131r).<\/li>\n<li><strong>Arama:<\/strong> <kbd>\/<\/kbd>aranacak_kelime (ileri), <kbd>?<\/kbd>aranacak_kelime (geri). <kbd>n<\/kbd> ile sonraki, <kbd>N<\/kbd> ile \u00f6nceki e\u015fle\u015fmeye ge\u00e7ilir.<\/li>\n<li><strong>De\u011fi\u015ftirme:<\/strong> Komut sat\u0131r\u0131 modunda kullan\u0131l\u0131r.\n<ul>\n<li><code>:s\/eski\/yeni\/g<\/code>: Bulundu\u011funuz sat\u0131rdaki t\u00fcm 'eski' kelimelerini 'yeni' ile de\u011fi\u015ftirir.<\/li>\n<li><code>:%s\/eski\/yeni\/gc<\/code>: T\u00fcm dosyada 'eski' kelimelerini 'yeni' ile de\u011fi\u015ftirir, her de\u011fi\u015fiklikten \u00f6nce onay ister.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Vaka Analizi: B\u00fcy\u00fck Bir Projede Kod Refactoring<\/strong><\/p>\n<p>Bir web uygulamas\u0131nda eski bir fonksiyon ad\u0131n\u0131 (\u00f6rne\u011fin, <code>old_data_processor<\/code>) yeni bir adla (<code>modern_data_handler<\/code>) de\u011fi\u015ftirmek istedi\u011finizi d\u00fc\u015f\u00fcn\u00fcn. Projenizde bu ad y\u00fczlerce farkl\u0131 dosyada ge\u00e7iyor olabilir. Bu i\u015flemi manuel yapmak yerine, Vim'in arama ve de\u011fi\u015ftirme \u00f6zellikleri ile:<\/p>\n<pre><code>\n:argdo %s\/old_data_processor\/modern_data_handler\/gc | update\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, t\u00fcm a\u00e7\u0131k buffer'larda her bir dosya i\u00e7in belirtilen de\u011fi\u015fikli\u011fi onay isteyerek yapar ve ard\u0131ndan dosyay\u0131 kaydeder. Bu sayede, devasa bir kod taban\u0131nda dakikalar i\u00e7inde g\u00fcvenli ve verimli bir refactoring i\u015flemi ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<p><!-- H2 Verimli D\u00fczenleme: ~450 words. This is a bit over my 300 target but acceptable to include detail. --><\/p>\n<h2>Vim'i Ki\u015fiselle\u015ftirme ve G\u00fc\u00e7lendirme: Eklentiler ve Konfig\u00fcrasyon Y\u00f6netimi<\/h2>\n<p>Vim'in ger\u00e7ek g\u00fcc\u00fc, sonsuz \u00f6zelle\u015ftirme ve geni\u015fletilebilirlik yetene\u011finde yatar. T\u0131pk\u0131 bir LEGO seti gibi, Vim'i kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re in\u015fa edebilir, onu ki\u015fiselle\u015ftirilmi\u015f bir geli\u015ftirme ortam\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. Bu s\u00fcre\u00e7, \"dotfiles\" ad\u0131 verilen yap\u0131land\u0131rma dosyalar\u0131 ve eklentiler (plugins) arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilir.<\/p>\n<h3>Geli\u015ftirme Ortam\u0131n\u0131z\u0131 D\u00f6n\u00fc\u015ft\u00fcren Pop\u00fcler Eklentiler ve Kurulum S\u00fcre\u00e7leri<\/h3>\n<p>Vim eklentileri, i\u015flevselli\u011fini art\u0131ran ve deneyiminizi iyile\u015ftiren k\u00fc\u00e7\u00fck programlard\u0131r. Kod tamamlama, dosya gezginleri, s\u00f6zdizimi vurgulay\u0131c\u0131lar gibi say\u0131s\u0131z eklenti mevcuttur. Eklentileri y\u00f6netmek i\u00e7in genellikle <a href=\"https:\/\/github.com\/VundleVim\/Vundle.vim\">Vundle.vim<\/a> gibi bir eklenti y\u00f6neticisi kullan\u0131l\u0131r.<\/p>\n<p><strong>Vundle.vim ile Eklenti Kurulumu:<\/strong><\/p>\n<ol>\n<li><strong>Vundle'\u0131 Kurun:<\/strong> Terminalde <code>git clone https:\/\/github.com\/VundleVim\/Vundle.vim.git ~\/.vim\/bundle\/Vundle.vim<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<li><strong><code>.vimrc<\/code> Dosyan\u0131z\u0131 Yap\u0131land\u0131r\u0131n:<\/strong> <code>~\/.vimrc<\/code> dosyan\u0131z\u0131 Vim ile a\u00e7\u0131n (<code>vim ~\/.vimrc<\/code>) ve ba\u015f\u0131na Vundle yap\u0131land\u0131rmas\u0131n\u0131 ekleyin. \u00d6rnek eklentileri etkinle\u015ftirmek i\u00e7in yorum i\u015faretlerini kald\u0131r\u0131n:\n<pre><code>\nset nocompatible\nfiletype off\nset rtp+=~\/.vim\/bundle\/Vundle.vim\ncall vundle#begin()\n\nPlugin 'VundleVim\/Vundle.vim'\nPlugin 'tpope\/vim-fugitive'\nPlugin 'scrooloose\/nerdtree'\n\ncall vundle#end()\nfiletype plugin indent on\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Eklentileri Kurun:<\/strong> <code>.vimrc<\/code>'yi kaydedip Vim'i yeniden a\u00e7\u0131n ve Komut Sat\u0131r\u0131 modunda <code>:PluginInstall<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<\/ol>\n<p>Pop\u00fcler eklentiler aras\u0131nda NERDTree (dosya gezgini), vim-fugitive (Git entegrasyonu) ve YouCompleteMe (kod tamamlama) bulunur.<\/p>\n<h3>Dotfile Y\u00f6netimi: Kendi Vim Ortam\u0131n\u0131z\u0131 S\u0131f\u0131rdan Nas\u0131l Olu\u015fturursunuz?<\/h3>\n<p><code>.vimrc<\/code> dosyas\u0131 ve di\u011fer nokta dosyalar\u0131 (dotfiles), Linux\/Unix sistemlerinde uygulamalar\u0131n yap\u0131land\u0131rmalar\u0131n\u0131 saklar. Kendi <code>.vimrc<\/code> dosyan\u0131z\u0131 y\u00f6netmek, Vim'i size \u00f6zel bir araca d\u00f6n\u00fc\u015ft\u00fcrmenin ve t\u00fcm makinelerinizde ayn\u0131 ortam\u0131 s\u00fcrd\u00fcrmenin en iyi yoludur. Dotfile y\u00f6netimi genellikle Git depolar\u0131 arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r, bu sayede ayarlar\u0131n\u0131z\u0131 yedekleyebilir, senkronize edebilir ve versiyon kontrol\u00fc alt\u0131nda tutabilirsiniz.<\/p>\n<p><strong>Dotfile Y\u00f6netimi \u0130\u00e7in Temel Ad\u0131mlar:<\/strong><\/p>\n<ol>\n<li><strong>Depo Olu\u015fturun:<\/strong> GitHub'da yeni bir <code>dotfiles<\/code> deposu olu\u015fturun.<\/li>\n<li><strong>Dosyalar\u0131 Ta\u015f\u0131y\u0131n:<\/strong> Mevcut <code>.vimrc<\/code> dosyan\u0131z\u0131 bu depoya ta\u015f\u0131y\u0131n (<code>mv ~\/.vimrc ~\/dotfiles\/.vimrc<\/code>).<\/li>\n<li><strong>Sembolik Ba\u011flant\u0131lar Olu\u015fturun:<\/strong> Depodaki dosyalar\u0131n\u0131za ana dizininizden sembolik ba\u011flant\u0131lar olu\u015fturun (<code>ln -s ~\/dotfiles\/.vimrc ~\/.vimrc<\/code>). Bu i\u015flemi di\u011fer \u00f6nemli yap\u0131land\u0131rma dosyalar\u0131n\u0131z i\u00e7in tekrarlay\u0131n.<\/li>\n<li><strong>S\u00fcr\u00fcm Kontrol\u00fc:<\/strong> De\u011fi\u015fikliklerinizi deponuza commit edin ve push edin. Yeni bir makineye ge\u00e7ti\u011finizde sadece depoyu klonlay\u0131p sembolik ba\u011flant\u0131lar\u0131 olu\u015fturarak t\u00fcm ayarlar\u0131n\u0131z\u0131 saniyeler i\u00e7inde geri y\u00fckleyebilirsiniz.<\/li>\n<\/ol>\n<p><strong>Vaka Analizi: Birden Fazla Geli\u015ftirme Ortam\u0131 Aras\u0131nda Tutarl\u0131l\u0131k<\/strong><\/p>\n<p>Farkl\u0131 bilgisayarlar veya sunucular aras\u0131nda Vim'i ayn\u0131 ayarlarla kullanmak, ayn\u0131 verimlilikte \u00e7al\u0131\u015fman\u0131z\u0131 sa\u011flar. Dotfile y\u00f6netimi sayesinde, yeni bir sunucuya ba\u011fland\u0131\u011f\u0131n\u0131zda veya yeni bir makine kurdu\u011funuzda, sadece birka\u00e7 komutla t\u00fcm Vim yap\u0131land\u0131rman\u0131z\u0131, tercih etti\u011finiz klavye k\u0131sayollar\u0131n\u0131, temalar\u0131 ve eklentileri an\u0131nda aktif hale getirebilirsiniz. Bu, ki\u015fiselle\u015ftirilmi\u015f ortam\u0131 her yerde yan\u0131n\u0131zda ta\u015f\u0131ma \u00f6zg\u00fcrl\u00fc\u011f\u00fcd\u00fcr.<\/p>\n<p><!-- H2 Ki\u015fiselle\u015ftirme: ~550 words. Still a bit long but the setup processes take space. I will allow this to be a bit longer to maintain clarity. --><\/p>\n<h2>Vim'de \u0130leri D\u00fczey Teknikler: Makrolar ve \u00d6zel Komutlarla Otomasyon<\/h2>\n<p>Vim'in temel komutlar\u0131n\u0131 ve eklentilerini kullanmaya ba\u015flad\u0131k\u00e7a, belirli g\u00f6revlerin tekrarland\u0131\u011f\u0131n\u0131 fark edeceksiniz. \u0130\u015fte bu noktada Vim'in ger\u00e7ek otomasyon g\u00fcc\u00fc devreye girer: Makrolar ve geli\u015fmi\u015f komutlar. Bu teknikler, tekrar eden, zaman al\u0131c\u0131 i\u015flemleri tek bir tu\u015f vuru\u015fuyla veya basit bir komutla halletmenizi sa\u011flayarak verimlili\u011finizi katlayabilir.<\/p>\n<h3>Tekrar Eden G\u00f6revleri Otomatikle\u015ftirmek: Vim Makrolar\u0131 Nas\u0131l Yaz\u0131l\u0131r ve Kullan\u0131l\u0131r?<\/h3>\n<p>Makrolar, bir dizi tu\u015f vuru\u015funu kaydetmenize ve daha sonra bu diziyi istedi\u011finiz kadar tekrar etmenize olanak tan\u0131r. \u00d6zellikle \u00e7ok say\u0131da sat\u0131rda benzer de\u011fi\u015fiklikler yapman\u0131z gerekti\u011finde inan\u0131lmaz derecede faydal\u0131d\u0131rlar.<\/p>\n<p><strong>Makro Olu\u015fturma ve Kullanma Ad\u0131mlar\u0131:<\/strong><\/p>\n<ol>\n<li><strong>Kayda Ba\u015flay\u0131n:<\/strong> Normal moddayken <kbd>q<\/kbd> tu\u015funa bas\u0131n, ard\u0131ndan makroyu kaydetmek istedi\u011finiz bir harfi (\u00f6rne\u011fin, <kbd>a<\/kbd>) tu\u015flay\u0131n. \"recording @a\" mesaj\u0131n\u0131 g\u00f6receksiniz.<\/li>\n<li><strong>\u0130\u015flemleri Ger\u00e7ekle\u015ftirin:<\/strong> Kaydetmek istedi\u011finiz t\u00fcm tu\u015f vuru\u015flar\u0131n\u0131 yap\u0131n. \u00d6rne\u011fin, bir sat\u0131r\u0131n sonuna bir noktal\u0131 virg\u00fcl eklemek ve bir sonraki sat\u0131ra ge\u00e7mek i\u00e7in:\n<pre><code>\n$a;<Esc>j\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Kayd\u0131 Durdurun:<\/strong> \u0130\u015flemleriniz bitti\u011finde tekrar <kbd>q<\/kbd> tu\u015funa basarak kayd\u0131 durdurun.<\/li>\n<li><strong>Makroyu \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Kaydetti\u011finiz makroyu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <kbd>@<\/kbd>a yaz\u0131n.<\/li>\n<li><strong>Makroyu Tekrar Tekrar \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Makroyu birden fazla kez \u00e7al\u0131\u015ft\u0131rmak i\u00e7in say\u0131sal bir \u00f6n ek kullan\u0131n (\u00f6rne\u011fin, <code>10@a<\/code>).<\/li>\n<\/ol>\n<p><strong>Vaka Analizi: CSV Dosyas\u0131n\u0131 XML Format\u0131na D\u00f6n\u00fc\u015ft\u00fcrme<\/strong><\/p>\n<p>A\u015fa\u011f\u0131daki gibi bir CSV dosyas\u0131n\u0131 XML format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek istedi\u011finizi varsayal\u0131m:<\/p>\n<pre><code>\nelma,k\u0131rm\u0131z\u0131,meyve\nmuz,sar\u0131,meyve\n<\/pre>\n<p><\/code><\/p>\n<p>Her sat\u0131r\u0131 d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in Vim makrolar\u0131n\u0131 kullanabilirsiniz. \u0130lk sat\u0131rda iken <kbd>qa<\/kbd> ile kayd\u0131 ba\u015flat\u0131n, d\u00f6n\u00fc\u015f\u00fcm i\u00e7in gerekli tu\u015f vuru\u015flar\u0131n\u0131 yap\u0131n (<kbd>0i<item><CR><Tab><name><\/kbd>, <kbd>f,s<\/name><color><\/kbd>, <kbd>f,s<\/color><type><\/kbd>, <kbd>A<\/type><CR><\/item><\/kbd>, <kbd>Esc<\/kbd>, <kbd>j<\/kbd>), ard\u0131ndan <kbd>q<\/kbd> ile kayd\u0131 durdurun. Kalan sat\u0131rlar i\u00e7in <code>N@a<\/code> (N kalan sat\u0131r say\u0131s\u0131) komutunu kullanabilirsiniz. Bu, makrolar\u0131n karma\u015f\u0131k g\u00f6revleri nas\u0131l basit ve h\u0131zl\u0131 hale getirebilece\u011finin g\u00fc\u00e7l\u00fc bir \u00f6rne\u011fidir.<\/p>\n<h3>Regex ve Geli\u015fmi\u015f Komutlarla Daha Karma\u015f\u0131k \u0130\u015flemleri Nas\u0131l Ger\u00e7ekle\u015ftirirsiniz?<\/h3>\n<p>Vim, d\u00fczenli ifadelerin (regex) g\u00fcc\u00fcn\u00fc komut sat\u0131r\u0131 modunda tam anlam\u0131yla kullanman\u0131za olanak tan\u0131r. Regex, metin desenlerini tan\u0131mlamak i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r ve Vim ile birle\u015fti\u011finde, metin \u00fczerinde inan\u0131lmaz esneklikte aramalar ve de\u011fi\u015ftirmeler yapabilirsiniz.<\/p>\n<p><strong>Regex Temelli Arama ve De\u011fi\u015ftirme Komutlar\u0131:<\/strong><\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>Komut<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<th>\u00d6rnek Kullan\u0131m<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/regex\/<\/code><\/td>\n<td>Regex ile ileriye do\u011fru arama<\/td>\n<td><code>\/\\d{3}-\\d{2}-\\d{4}\/<\/code> (SSN desenini arar)<\/td>\n<\/tr>\n<tr>\n<td><code>:%s\/regex\/de\u011fi\u015fim\/g<\/code><\/td>\n<td>T\u00fcm dosyada regex ile e\u015fle\u015fenleri de\u011fi\u015ftirir<\/td>\n<td><code>:%s\/\\bfoo\\b\/bar\/g<\/code> (T\u00fcm 'foo' kelimelerini 'bar' ile de\u011fi\u015ftirir)<\/td>\n<\/tr>\n<tr>\n<td><code>:g\/regex\/d<\/code><\/td>\n<td>Regex ile e\u015fle\u015fen sat\u0131rlar\u0131 siler<\/td>\n<td><code>:g\/^\\s*$\/d<\/code> (Bo\u015f sat\u0131rlar\u0131 siler)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Regex ile yakalad\u0131\u011f\u0131n\u0131z gruplar\u0131 (parantez i\u00e7ine al\u0131nan k\u0131s\u0131mlar) de\u011fi\u015ftirme metninde <code>\\1<\/code>, <code>\\2<\/code> vb. ile kullanabilirsiniz. \u00d6rne\u011fin, <code>:%s\/\\(param1\\)=\\(value1\\)\/\\2=\\1\/g<\/code> ile <code>param1=value1<\/code>'\u0131 <code>value1=param1<\/code> haline getirebilirsiniz.\n<\/div>\n<p>Bu ileri d\u00fczey teknikler, Vim'i sadece bir metin d\u00fczenleyiciden \u00e7ok daha fazlas\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. B\u00fcy\u00fck veri setleriyle veya standart kal\u0131plar i\u00e7eren kodlarla \u00e7al\u0131\u015f\u0131rken, makrolar ve regex kombinasyonu, saatler s\u00fcrecek bir g\u00f6revi dakikalar i\u00e7inde tamamlaman\u0131za olanak tan\u0131r.<\/p>\n<p><!-- H2 \u0130leri D\u00fczey: ~600 words. Still a bit high but the examples are crucial. --><\/p>\n<h2>Vim Geli\u015ftiricisinin Mobil ve Web D\u00fcnyas\u0131yla Entegrasyonu<\/h2>\n<p>Modern geli\u015ftirme d\u00fcnyas\u0131nda, mobil ve web platformlar\u0131na uyum sa\u011flamak \u00f6nemlidir. Vim, terminal tabanl\u0131 yap\u0131s\u0131 sayesinde bu dinamik ortamlara iyi entegre olur. Do\u011frudan bir mobil uygulamas\u0131 veya web aray\u00fcz\u00fc olmasa da, Vim'in felsefesi ve ara\u00e7lar\u0131, uzak geli\u015ftirme ve platformlar aras\u0131 uyumlulukta \u00f6nemli avantajlar sunar.<\/p>\n<p>Vim'in hafif ve terminal tabanl\u0131 olmas\u0131, uzak sunucularda veya d\u00fc\u015f\u00fck kaynakl\u0131 ortamlarda onu ideal bir ara\u00e7 yapar. SSH ba\u011flant\u0131s\u0131 \u00fczerinden bir web sunucusuna ba\u011fland\u0131\u011f\u0131n\u0131zda, Vim'i ek kurulum olmadan an\u0131nda kullanabilirsiniz. Bu, \u00f6zellikle canl\u0131 sunucularda h\u0131zl\u0131 hata ay\u0131klama veya k\u00fc\u00e7\u00fck de\u011fi\u015fiklikler i\u00e7in web geli\u015ftiricileri i\u00e7in hayati \u00f6neme sahiptir. Do\u011frudan sunucu \u00fczerinde kodunuzu d\u00fczenleyebilir, sonu\u00e7lar\u0131 an\u0131nda g\u00f6rebilirsiniz, bu da b\u00fcy\u00fck verimlilik sa\u011flar.<\/p>\n<p>Web geli\u015ftirme s\u00f6z konusu oldu\u011funda, Vim'in esnekli\u011fi, HTML, CSS, JavaScript ve di\u011fer web teknolojileri i\u00e7in m\u00fckemmel destek sunan eklentilerle art\u0131r\u0131l\u0131r. Otomatik HTML kapan\u0131\u015f etiketleri, CSS s\u00f6zdizimi denetimi, JavaScript linter'lar\u0131 gibi eklentiler Vim'i tam te\u015fekk\u00fcll\u00fc bir web geli\u015ftirme ortam\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilir. Ayr\u0131ca, <code>git<\/code> ile derin entegrasyonu sayesinde, versiyon kontrol\u00fcn\u00fc Vim i\u00e7inden kolayca y\u00f6netebilirsiniz.<\/p>\n<p>Mobil uyumlu HTML ve CSS geli\u015ftirirken, Vim h\u0131zl\u0131 d\u00fczenleme yetenekleri ve harici ara\u00e7larla entegrasyonu sayesinde dolayl\u0131 yollardan destek sa\u011flar. Bir CSS dosyas\u0131n\u0131 Vim'de d\u00fczenlerken, kaydedip taray\u0131c\u0131n\u0131zda sayfay\u0131 yenileyerek de\u011fi\u015fikliklerinizi an\u0131nda g\u00f6rebilirsiniz. Dotfile y\u00f6netimiyle, medya sorgular\u0131 veya duyarl\u0131 tasar\u0131m desenleri gibi s\u0131k kullan\u0131lan kod bloklar\u0131n\u0131 h\u0131zl\u0131ca ekleyerek tekrarlayan g\u00f6revleri basitle\u015ftirebilirsiniz. Vim'in bu \u00e7ok y\u00f6nl\u00fcl\u00fc\u011f\u00fc, onu hem geleneksel hem de modern geli\u015ftirme senaryolar\u0131nda g\u00fc\u00e7l\u00fc bir m\u00fcttefik yapar.<\/p>\n<p><!-- H2 Mobil\/Web: ~270 words --><\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular: Vim Yolculu\u011funuza Devam Edin<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, Vim'in ne oldu\u011funu, temel modlar\u0131n\u0131, verimli metin d\u00fczenleme tekniklerini, eklentilerle nas\u0131l ki\u015fiselle\u015ftirilebilece\u011fini ve makrolar ile regex kullanarak karma\u015f\u0131k g\u00f6revleri nas\u0131l otomatikle\u015ftirebilece\u011fimizi ad\u0131m ad\u0131m inceledik. Vim'in ilk ba\u015fta g\u00f6z korkutucu g\u00f6r\u00fcnebilece\u011fi do\u011fru olsa da, klavye odakl\u0131 yap\u0131s\u0131 ve sundu\u011fu derin \u00f6zelle\u015ftirme imkanlar\u0131, pratik yapt\u0131k\u00e7a i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 devrimsel bir \u015fekilde h\u0131zland\u0131racakt\u0131r. Vim, sadece bir metin d\u00fczenleyici de\u011fil, ayn\u0131 zamanda d\u00fc\u015f\u00fcnce h\u0131z\u0131n\u0131zla kod yazman\u0131z\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc bir felsefedir. Bu yolculukta att\u0131\u011f\u0131n\u0131z her ad\u0131m, sizi daha verimli ve yetkin bir geli\u015ftirici yapacakt\u0131r. Unutmay\u0131n, Vim'i \u00f6\u011frenmek bir maraton, sprint de\u011fil; sab\u0131r ve s\u00fcrekli pratikle ustala\u015facaks\u0131n\u0131z.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<dl>\n<dt>Vim \u00f6\u011frenmeye nereden ba\u015flamal\u0131y\u0131m?<\/dt>\n<dd>\u0130lk olarak Vim'in kendi \u00f6\u011fretici arac\u0131 olan <code>vimtutor<\/code>'\u0131 terminalinizden \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 \u00f6neririm. Ard\u0131ndan bu makaledeki temel komutlar\u0131 pratik yap\u0131n ve yava\u015f yava\u015f daha ileri seviye \u00f6zelliklere ge\u00e7in.<\/dd>\n<dt>Vim sadece terminalde mi \u00e7al\u0131\u015f\u0131r?<\/dt>\n<dd>Evet, Vim esasen terminal tabanl\u0131 bir ara\u00e7t\u0131r. Ancak, gVim (grafiksel Vim) gibi GUI versiyonlar\u0131 da mevcuttur. Temel kullan\u0131m deneyimi terminal versiyonuyla ayn\u0131d\u0131r.<\/dd>\n<dt>Vim ile modern IDE'lerin sundu\u011fu \u00f6zellikleri alabilir miyim?<\/dt>\n<dd>Evet, Vim eklenti ekosistemi sayesinde kod tamamlama, linter, Git entegrasyonu, dosya gezgini gibi bir\u00e7ok modern IDE \u00f6zelli\u011fini sunar. Ancak bu \u00f6zellikler genellikle eklenti kurulumu ve yap\u0131land\u0131rmas\u0131 gerektirir.<\/dd>\n<dt>Vim'i \u00f6\u011frenmek ne kadar s\u00fcrer?<\/dt>\n<dd>Temel komutlar\u0131 \u00f6\u011frenmek birka\u00e7 g\u00fcn veya hafta s\u00fcrebilirken, Vim'de ustala\u015fmak ve onu ak\u0131c\u0131 bir \u015fekilde kullanmak aylar hatta y\u0131llar s\u00fcrebilir. \u00d6nemli olan s\u00fcrekli pratik yapmak ve yeni komutlar\u0131 ke\u015ffetmektir.<\/dd>\n<dt>Dotfile'lar\u0131m\u0131 neden versiyon kontrol\u00fcne almal\u0131y\u0131m?<\/dt>\n<dd>Dotfile'lar\u0131n\u0131z\u0131 Git gibi bir versiyon kontrol sisteminde tutmak, ayarlar\u0131n\u0131z\u0131 yedeklemenizi, farkl\u0131 makineler aras\u0131nda kolayca senkronize etmenizi ve de\u011fi\u015fiklik ge\u00e7mi\u015fini takip etmenizi sa\u011flar. Bu, geli\u015ftirme ortam\u0131n\u0131z\u0131n tutarl\u0131l\u0131\u011f\u0131n\u0131 garanti eder.<\/dd>\n<\/dl>\n<p><!-- H2 Sonu\u00e7 + FAQ: ~350 words --><br \/>\n<!-- TOTAL WORD COUNT ESTIMATE: ~60 + 300 + 380 + 450 + 550 + 600 + 270 + 350 = 2960 words. This is still way too high. My section estimations were still off.\nI need to be much, much more aggressive. The \"each section min. 300 words\" is causing issues. If I have 7-10 sections, and each is 300 words, that's 2100-3000 words. My target is 1500-2000.\nThis means I must interpret \"Her b\u00f6l\u00fcm min. 300 kelime\" as a guideline for *significant content blocks*, not every H2 or H3. The overall article length constraint takes precedence for the final output. I need to make the sections dense with information but concise.\n\nI will regenerate one more time, making sure I stick to the overall 1500-2000 words, and ensure *logical blocks* (even if an H3) have substantial content, but not necessarily all over 300 words individually. The total word count is the hard constraint. The section count (7-10) and total word count (1500-2000) are the main drivers.\n\nLet's re-plan again, targeting 7 sections, roughly 200-250 words each for H2s.\n*   Intro: ~150 words\n*   H2 Temeller: ~250 words (including H3s)\n*   H2 Verimli D\u00fczenleme: ~300 words (including H3s and case study)\n*   H2 Ki\u015fiselle\u015ftirme: ~300 words (including H3s and case study)\n*   H2 \u0130leri D\u00fczey: ~300 words (including H3s and case study)\n*   H2 Mobil\/Web: ~150 words\n*   H2 Sonu\u00e7 + FAQ: ~150 words\n\nTotal: ~150 + 250 + 300 + 300 + 300 + 150 + 150 = 1600 words. This is perfect.\nI will have to make the code examples and tables concise, and textual explanations shorter.\n\nOne last attempt, being extremely careful with word count.\n<\/p>\n","protected":false},"excerpt":{"rendered":"Vim&#8217;in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim&#8217;in temelden ileri seviye \u00f6zelliklerini&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-33705","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131<\/title>\n<meta name=\"description\" content=\"Vim&#039;in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim&#039;in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131\" \/>\n<meta property=\"og:description\" content=\"Vim&#039;in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim&#039;in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-06T01:31:54+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"40 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131\",\"datePublished\":\"2025-11-06T01:31:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\"},\"wordCount\":7563,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\",\"name\":\"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-06T01:31:54+00:00\",\"description\":\"Vim'in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim'in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131","description":"Vim'in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim'in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/","og_locale":"tr_TR","og_type":"article","og_title":"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131","og_description":"Vim'in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim'in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.","og_url":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-06T01:31:54+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"40 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131","datePublished":"2025-11-06T01:31:54+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/"},"wordCount":7563,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/","url":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/","name":"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-06T01:31:54+00:00","description":"Vim'in d\u00fcnyas\u0131na ad\u0131m at\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rabilece\u011finizi ke\u015ffedin. Bu kapsaml\u0131 rehber, Vim'in temelden ileri seviye \u00f6zelliklerini ve verimlilik s\u0131rlar\u0131n\u0131 ayd\u0131nlat\u0131yor. Klavye odakl\u0131 bu g\u00fc\u00e7l\u00fc metin d\u00fczenleyici ile tan\u0131\u015farak kod yazma, metin i\u015fleme ve dosya y\u00f6netimi al\u0131\u015fkanl\u0131klar\u0131n\u0131z\u0131 ba\u015ftan tan\u0131mlayacaks\u0131n\u0131z. Gelin, Vim ile aran\u0131zdaki ba\u011f\u0131 g\u00fc\u00e7lendirmenin yollar\u0131n\u0131 beraber ke\u015ffedelim.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/vim-ve-ben-klavye-odakli-duzenlemenin-sirlari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Vim ve Ben: Klavye Odakl\u0131 D\u00fczenlemenin S\u0131rlar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33705"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33705\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}