Vim: Setup Vim Untuk Termux, Window, dan Linux

  • calendar_today
  • styletutorial
  • shareshare
  • question_answercomment
Thumbnail - Vim: Setup Vim Untuk Termux, Window, dan Linux

Konfigurasi Vim perlu jika kita ingin membuat tampilan dari vim lebih ciamik

dan menarik, terutama untuk mempermudah saat kita membaca kode yang kita buat.

Vim merupakan versi improvisasi dari vi yang merupakan bawaanya Linux. Vim

sangat cocok bagi kalian yang ingin mempunyai IDE yang ringan dan tidak membe

bani kinerja CPU. dan bisa digunakan diberbagai device yang berbasisi linux.

Jika kalian menggunakan vim dan kalian berasal dari windows user atau

kalian yang menggunakan Sublime atau VSCode kalian pasti merasakan kesulitan

dan tidak terlalu familiar. Untuk itu kita perlu melakukan sedikit konfigurasi

agar vim lebih mudah digunakan. cara-menambang-bicoin

Konfigurasi Dasar

  <span class="hljs-comment">"~/.vimrc</span>

  <span class="hljs-comment">" =============== Required and Initial Settings ===============</span>
  <span class="hljs-comment">" Use Vim settings rather than Vi settings. Must be first, it affects other options</span>
  <span class="hljs-keyword">set</span> nocompatible

  <span class="hljs-comment">" Map the leader key. Must happen before Plug so all the settings can be set accordingly.</span>
  <span class="hljs-keyword">let</span> mapleader = <span class="hljs-string">" "</span>

Pada konfigurasi diatas saya memasukan perintah agar .vimrc diload

oleh vim dan agar setting yang dibuat tidak tertimpa oleh pengaturan

bawaan dari vim

Pengaturan Umum

<span class="hljs-comment">" ================ General ==========================</span>

<span class="hljs-keyword">set</span> <span class="hljs-keyword">history</span>=<span class="hljs-number">1000</span>                    <span class="hljs-comment">" Store :cmdline history.</span>
<span class="hljs-keyword">set</span> showcmd                         <span class="hljs-comment">" Show incomplete commands at the bottom</span>
<span class="hljs-keyword">set</span> showmode                        <span class="hljs-comment">" Show current mode at the bottom</span>
<span class="hljs-keyword">set</span> ruler                           <span class="hljs-comment">" Always show the current position</span>
<span class="hljs-keyword">set</span> backspace=<span class="hljs-built_in">indent</span>,eol,start      <span class="hljs-comment">" Allow backspace to delete everything</span>
<span class="hljs-keyword">set</span> autoread                        <span class="hljs-comment">" Auto reload file when it's changed in the background</span>
<span class="hljs-keyword">set</span> showmatch                       <span class="hljs-comment">" Show matching brackets and parentheses</span>
<span class="hljs-keyword">syntax</span> enable                       <span class="hljs-comment">" Syntax highlighting</span>
<span class="hljs-keyword">set</span> encoding=utf-<span class="hljs-number">8</span>                  <span class="hljs-comment">" Force UTF-8 as standard encoding</span>
<span class="hljs-keyword">set</span> ffs=unix,dos,mac                <span class="hljs-comment">" Unix as the standard file type</span>
<span class="hljs-keyword">set</span> laststatus=<span class="hljs-number">2</span>                    <span class="hljs-comment">" Always show the statusline</span>
<span class="hljs-keyword">set</span> <span class="hljs-keyword">number</span>                          <span class="hljs-comment">" Show line numbers</span>
<span class="hljs-keyword">set</span> guioptions-=r                   <span class="hljs-comment">" Remove scrollbar for GUI Vim.</span>
<span class="hljs-keyword">map</span> q: :q
<span class="hljs-keyword">map</span> :Q :q
<span class="hljs-keyword">map</span> :W :<span class="hljs-keyword">w</span>

<span class="hljs-comment">" Key timeouts</span>
<span class="hljs-keyword">set</span> timeoutlen=<span class="hljs-number">250</span> ttimeoutlen=<span class="hljs-number">0</span>

<span class="hljs-comment">" The current buffer can be put to the background without writing to disk;</span>
<span class="hljs-comment">" When a background buffer becomes current again, marks and undo-history are remembered.</span>
<span class="hljs-comment">" http://items.sjbach.com/319/configuring-vim-right</span>
<span class="hljs-keyword">set</span> hidden

<span class="hljs-comment">" move among buffers with CTRL</span>
<span class="hljs-keyword">map</span> <span class="hljs-symbol"><C-Right></span> :<span class="hljs-keyword">bnext</span><span class="hljs-symbol"><CR></span>
<span class="hljs-keyword">map</span> <span class="hljs-symbol"><C-Left></span> :bprev<span class="hljs-symbol"><CR></span>

Pengaturan umum ini dimaksudkan agar pengaturan yang sering digunakan oleh

para pengguna vim lainnya. Disini saya melakukan beberapa konfigurasi yang memperbaiki

tampilan vim agar agak mirip dengan code editor Sublime atau VSCode

  • Untuk mempermudah saya mengigat perintah yang telah saya gunakan dalam

    vim saya menaruh didalam history dengan max 1000 perintah dan otomatis

    menampilkan perintah yang belum selesai

  • Saya juga menampilakan Line Number dan set file encoding ke utf-8, menampilan

    warna pada baris serta otomatis highlight pada kurung buka dan tutup

  • Saya juga melakukan beberapa remaping perintah dasar seperti bukan, tulis, dan

    tutup

  • Saya juga melakuan sedikit pengaturan pada buffer file. Buffer file merupakan file

    yang tercipta ketika kita mebuka vim dan terhapus ketika kita menutupnya.

Pengaturan Keamanan

<span class="hljs-comment">" ================ Dir specific vimrc ===============</span>

<span class="hljs-keyword">set</span> exrc            <span class="hljs-comment">" enable per-directory .vimrc files</span>
<span class="hljs-keyword">set</span> secure          <span class="hljs-comment">" disable unsafe commands in local .vimrc files</span>

Untuk mengatasi vimrc yang berada diluar directory standar seperti didalam

plugin saya set menjadi secure jadi perintah yang tidak aman dari plugin tidak

bisa dicegah dan tidak menggagu performa vim

Menonaktifkan Swap File

Swap file di beberapa keadaan sangat membantu, namum terkadang swap file ini sangat menjengkelkan

bagi bagi beberapa orang seperti saya. Hal itu karena jika kita melakukan force close atau tidak sengaja

menutup vim tanpa menyimpan file dan ingin membuka file tersebut maka kita akan dihadakan pada sebuah

promt untuk membuka, menipa, menghapus file dan jika diperhatikan file yang terbuka bukan file orginal

namus di extends dari foo.bar ke foo.bar.swp. Untuk mengatasi hal tersebut kalian bisa menambahkan

kode berikut pada vimrc kalian.

<span class="hljs-comment">" ================ Turn Off Swap Files ==============</span>

<span class="hljs-keyword">set</span> noswapfile
<span class="hljs-keyword">set</span> nobackup
<span class="hljs-keyword">set</span> nowb

Undo and Redo

<span class="hljs-comment">" ================ Persistent Undo ==================</span>
<span class="hljs-comment">" Keep undo history across sessions, by storing in file.</span>
<span class="hljs-comment">" Only works all the time.</span>
<span class="hljs-keyword">if</span> <span class="hljs-built_in">has</span>(<span class="hljs-string">'persistent_undo'</span>)
  <span class="hljs-keyword">silent</span> !mkdir ~/.vimbackups > /dev/null <span class="hljs-number">2</span>>&<span class="hljs-number">1</span>
  <span class="hljs-keyword">set</span> undodir=~/.vimbackups
  <span class="hljs-keyword">set</span> <span class="hljs-built_in">undofile</span>
<span class="hljs-keyword">endif</span>

Untuk melakuan undo dan redo saya menaruh type sesion (insert mode ke normal mode)

yang akan tersimpan pada hidden file .vimbackup dan dapat saya undo dengan U ata u

pada normal mode

Spasi dan Tab

<span class="hljs-comment">" ================ Indentation ======================</span>

<span class="hljs-keyword">set</span> autoindent        <span class="hljs-comment">" Automatically indent</span>
<span class="hljs-keyword">set</span> smartindent
<span class="hljs-keyword">set</span> smarttab

<span class="hljs-comment">" Set softtabs with 2 spaces</span>
<span class="hljs-keyword">set</span> tabstop=<span class="hljs-number">2</span> softtabstop=<span class="hljs-number">2</span> <span class="hljs-built_in">shiftwidth</span>=<span class="hljs-number">2</span> expandtab

<span class="hljs-comment">" ================ Line Breaks ====================</span>

<span class="hljs-comment">" Don't wrap lines physically (auto insertion of newlines)</span>
<span class="hljs-keyword">set</span> nowrap <span class="hljs-comment">"Don't wrap lines</span>
<span class="hljs-keyword">set</span> nolist <span class="hljs-comment">" list disables linebreak</span>
<span class="hljs-keyword">set</span> textwidth=<span class="hljs-number">0</span> wrapmargin=<span class="hljs-number">0</span>
<span class="hljs-keyword">set</span> colorcolumn=<span class="hljs-number">80</span>
<span class="hljs-keyword">set</span> sidescroll=<span class="hljs-number">5</span>
<span class="hljs-keyword">set</span> listchars+=precede<span class="hljs-variable">s:</span><,<span class="hljs-built_in">extend</span><span class="hljs-variable">s:</span>>

Saya det indentnya mejadi 2 dan rubah dari tab kespasi, hal ini juga agar

tidak terlalu makan tempat. Saya juga melakukan batas kaliamt 80 kalimat perline

yang nantinya akan napak garis horizontal. Untuk mengatasi posisi cursor setiap saya

melakuan pengetikan maka secara otomatis posisi cursor sesuai posisi.

Penutup

Selamat kini anda telah berhasil melakukan komfigurasi pada vim dan sekian untuk

part 1. nantikan kelanjutan part duanya ya

  1. home
  2. Vim: Setup Vim Untuk Termux, Window, dan Linux