Categories
Vim

My Vim Configuration

I’ve just used Vim when I write code for about 6 months and I am still using it. In this post, I’m gonna write about my favorite Vim configs and plugins.

I’m using Vundle for plugin management. Vundle helps me to make easy plugin installation and update.

Abbreviations

When I write code in Vim I sometimes write the wrong command for close the file. For example, I write “Wq” instead of “wq”. I’ve discovered abbreviations for this situation.. Here are my abbreviations:

cnoreabbrev W! w!
cnoreabbrev Q! q!
cnoreabbrev Qall! qall!
cnoreabbrev Wq wq
cnoreabbrev Wa wa
cnoreabbrev wQ wq
cnoreabbrev WQ wq
cnoreabbrev W w
cnoreabbrev Q q
cnoreabbrev Qall qall

Relative Line Numbers

One of my favorite features at Vim is “relative line numbers”.

Relative line numbers help us to edit our file quickly. For example, if we want to move up or down 5 lines from the current line, we just need use “10j” or “10k”.

set number
set relativenumber

Shortcuts

To create shortcut you can find a great tutorial in vim.wikia. Here are my favorite shortcuts:

"" Split
noremap <Leader>h :<C-u>split<CR>
noremap <Leader>v :<C-u>vsplit<CR>

"" Tabs
nnoremap <Tab> gt
nnoremap <S-Tab> gT

My Favorite Plugins

I’m using many plugins. These plugins provide a better vim for me. I generally write php, html, css, basic javascript and ruby.

Here are plugins I’m using for these languages:

  • stanangeloff/php.vim
  • jelera/vim-javascript-syntax
  • hail2u/vim-css3-syntax
  • tpope/vim-rails
  • tpope/vim-rake
  • thoughtbot/vim-rspec
  • ecomba/vim-ruby-refactoring

Other plugins:

  • scrooloose/nerdtree
  • ctrlpvim/ctrlp.vim
  • airblade/vim-gitgutter
  • vim-airline/vim-airline
  • grep.vim
  • tomasr/molokai

I tried to write about my favorite the vim configurations. I guess the article has been short but I wanted to write basic configurations. I hope there is no wrong information. Maybe I’ll add some new information in the near future.

You can find my .vimrc file on GitHub.

Categories
WordPress

Visual Composer Elemanı Oluşturmak

WordPress geliştirme yaparken genellikle tüm yapıyı (sayfa şablonları, tasarım aktarımı vb.) kendim kurmayı seviyorum ve yapıyordum ancak son dönemde dahil olduğum takım ve işler genellikle Visual Composer eklentisi ile yürütülüyor. Eklentiyi pek sevmedim ancak özellikle son kullanıcı için oldukça güzel faydaları olduğu söylenebilir.

Bu yazı bazı özel istekler için nasıl kendi elemanımızı oluşturabiliriz sorusuna basit bir giriş olacak.

Yazdığımız elemanları derli toplu tutmak için alt bir dizin kullanmak oldukça faydalı olacaktır. Ben genellikle “vc-elements” isminde bir dizin oluşturuyorum ve elemanlarımızın her biri için ayrı php sınıfları oluşturuyorum. Sınıfımızı oluşturmadan önce yapmamız gereken bir şey var; eklentinin “vc_before_init” actionını hook ederek elemanımızın sınıfını çağırmalıyız. Bu işlemi functions.php dosyamızda şu şekilde yapabiliriz:

function vc_before_init_actions() {
  require_once( get_template_directory() . '/vc-elements/ilk-vc-elemanim.php' );    
}
add_action( 'vc_before_init', 'vc_before_init_actions' );

Şimdi vc-elements dizini altında sınıfımızı oluşturabiliriz:

class HelloWorld extends WPBakeryShortCode {
  function __construct() {
    add_action( 'init', array(  $this, 'vc_hello_world_mapping' ) );
    add_shortcode( 'vc_hello_world', array( $this, 'vc_hello_world_html' ) );
  }

  public function vc_hello_world_mapping() {
    vc_map(
      array(
        'name' => __( 'Hello World Element', 'theme' ),
        'base' => 'vc_hello_world',
      )
    );
  }

  public function vc_hello_world_html( ) {
    return "Hello World";        
  }
}

new HelloWorld();

Sınıfımızdaki kodlardan bahsetmek gerekirse;

  • construct altında init action’ını vc_hello_world_mapping methodu ile hook edip, eklenti’nin bir fonksiyonu olan vc_map ile temel elemanımızı oluşturuyoruz.
  • Yine construct altındaki ikinci satırda ise VC’nin kullanacağı shortcode tanımlamasını yapıyoruz, vc elemanlarımız temelde bu shortcode’u kullanıyor olacak.
  • İlk satırda belirttiğim gibi vc_hello_world_mapping içerisinde vc_map kullanarak temel elemanı oluşturuyoruz, parametre olarak gönderdiğimiz array’in içerisindeki base değerinde shortcode’umuzu belirtiyoruz. Çok daha detaylı parametreler alan bir eleman oluşturmak isterseniz bu sayfayı inceleyebilirsiniz.
  • Son olarak vc_hello_world_html methodunda ise ekrana basacak değerleri döndürüyoruz.

En basit anlamda bir visual composer elemani oluşturmak bu şekilde, çok daha detaylı geliştirmeler yapmak için eklentinin kendi wikisinden yararlanmak en doğrusu olacaktır.