Vim: Replace Regex Örnekleri

Örnek-1:

Mevcut format:
public $hosts;
public $ldap_servers;
public $ldap_port;
public $ldap_encrypt;
public $ldap_rootdn;
public $ldap_password;
public $ldap_base;
public $ldap_uids;
İstenilen format:
hosts,
ldap_servers,
ldap_port,
ldap_encrypt,
ldap_rootdn,
ldap_password,
ldap_base,
ldap_uids,
Replace regex:
:51,58s/public \$\(.*\);/\1,/gi

Vim İpuçları (vim tips)

Kopyalama-Yapıştırma

  • Clipboard’a içerik kopyalama: “+y[movement] veya :%y+
  • Clipboard’dan içerik yapıştırma: “+p
  • Bir dosyanın tüm içeriğini clipboard’a kopyalama: gg”+yG

Case sensitive-Case insensitive

  • Kalıcı case insensitive ayarlama: :set igorecase veya :set ic
  • Kalıcı case sensitive ayarlama: :set noigorecase veya :set noic
  • Tümü küçük harf girilerek yapılan aramalarda case insensitive davranmasını sağlama: :set smartcase
  • Case insensitive arama yapma: /search\c
  • Case sensitive arama yapma: /search\C

Lowercase-Uppercase

  • Bir satırdaki tüm harfleri küçük yapma: :s/\(.*\)/\L\1/
  • Bir satırdaki tüm harfleri büyük yapma: :s/\(.*\)/\U\1/
  • Bir satırdaki ilk harfi büyük yapma ve diğerlerini küçük yapma: :s/^\(.\)\(.*\)/\u\1\L\2/
  • Bir satırdaki kelimelerin ilk haflerini büyük diğerlerini küçük yapma: :s/\<\(\w\)\(\w*\)\>/\u\1\L\2/g

Karışık

  • J: mevcut satırı sonraki satırlara birleştirir
  • K: linux’de cursor altındaki kelimenin man sayfasını getirir
  • set nrformats=: bu vim’i onların başında sıfır olduğuna bakmadan tüm sayıları 10’luk olark algılamasını sağlar
  • ,: f{chart},  F{char}, t{char} veya T{char} ile yapılan aramayı tersine doğru tekrarlar
  • ;: f{chart},  F{char}, t{char} veya T{char} ile yapılan arama tekrarlar
  • F{char}: satırdaki bir karakteri geriye dönük arar
  • f{char}: satırdaki bir karakteri ileriye dönük arar
  • s: cl gibi cursor altında karakteri siler ve insert moduna geçer
  • S: ^C gibi satır başına konumlanır, satırı siler ve insert moduna geçer
  • C: c$ gibi mevcut yerden satır sonuna kadar siler ve insert moduna geçer
  • vit: açılmış ve kapanmış tag’lar (<div></div> gibi) arasındaki metni seçer
  • vim -u NONE -N: vim’i .vimrc’siz(-u NONE) ve vi uyumlu olmadan (-N)
  • Tek seferde birden fazla komut çalıştırma: :%s/erman/ERMAN/g | %s/gulhan/GULHAN/g
  • :Helptags: dizinler için help tag dosyalarını oluşturur (* örneğin :help ile arattığınız bir şeyi bulmuyorsa bu komut verilmeli)
  • V125gg: mevcut satırdan yukarıya doğru 125 nolu satıra kadar görsel olarak seçer
  • V125G: mevcut satırdan aşağıya doğru 125 nolu satıra kadar görsel olarak seçer
  • :e $MYVIMRC: .vimrc dosyanızı açar
  • :e $MYGVIMRC: .gvimrc dosyanızı açar
  • :so $MYVIMRC: .vimrc dosyasını tekrar yükler
  • ^M karakterlerini temizleme: :%s/<Ctrl-V><Ctrl-M>//g
  • Vim’i varsayılan svn editörü olarak atama: export SVN_EDITOR=vim
  • Dosyanın karakter kodlamasını öğrenme :set fileencoding
  • Kursörün altındaki karakterin Ascii/Unicode değerini öğrenme: ga veya :as veya :ascii
  • Vim ile açılan son dosyayı açmak: alias lvim=”vim -c \”normal ‘0\””
  • Substitution syntax: :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
  • Tüm satırların başına satır numarası ekleme: :%s/^/\=line(“.”).”- “/g
  • Ortam değişkenlerini gerçek değerleri ile değiştirme: :%s/\$USER/\=expand($USER)/g
  • Php dosyasında syntax hatası kontrolü: :! php5 -l reports.php
  • Bir satırı etiketleme ve ona gitme:
    • etiketleme: m{letter} veya :ma {letter}
    • gitme: ‘{letter}
  • Etiketlenmiş satırı kopyalama: y'{letter}
  • Dosyanın adını gösterme: :echo @%
  • Açılıp-kapanmış (‘, (, {, [, vs.) karakterlere gitme:
    • sonrakine gitme: %
    • öncekine gitme: [{char}
  • :abbr proglang programming language: Yazarken “proglang” kısaltmalarını otomatik olarak “programming language” olarak çevirir
  • U: mevcut satırda değişiklikleri geri alır
  • g+, g-: metin değişikliklerini ileri ve geri alır
  • :0;/echo: echo geçen ilk satırı bulur
  • :/echo/+1: ilk echo geçen satırdan bir sonraki satır
  • :.+5: mevcut satırdan sonraki 5. satır
  • :,+7s/echo/print: mevcut satırla birlikte sonraki 6 satırıdaki echo’ları print’e çevirir (uzun hali: :.,.+7/echo/print)
  • :s/echo/print/ 3: mevcut satırdaki ve sonraki 2 satırdaki echo’ları print’e çevirir
  • :1d 5: mevcut  ve sonraki 4 satırı siler
  • :set paste: clipboard’dakini kopyalarken olduğu gibi kopyalar (kopyalamadan önce bu komut çalıştırılmalıdır [fazladan indent’leri ekleme problemini çözer])
  • :edit: mevcut dosyayı tekrar yüklemek için de kullanılır

Window / split / vsplit

  • :resize 10: pencereyi 10 satırlık ayarlar
  • :res +10: pencerenin yüksekliğine 10 satırlık yükseklik ekler
  • :vertical res 10: pencerenin genişliğini 10’luk yapar
  • Ctrl-w + / Ctrl-w –: split window yüksekliğine 1 satır ekler/çıkarır
  • Ctrl-w > / Ctrl-w <: vsplit window genişliğine 1 satır ekler/çıkarır
  • 5 Ctrl-w +: window yüksekliğine 5 satır ekler
  • Ctrl-w =: split window genişliklerini eşitler
  • Ctrl-w _: vsplit window yüksekliğini maksimum ayarlar

Zoom

  • zt: mevcut satırı en üste çeker (zt: zoom top)
  • zb: mevcut satırı en alta çeker (zb: zoom bottom)
  • zz: mevcut satırı ortaya çeker

* zoom’lama komutları komut modunda yazılmalı