顯示具有 VIM 標籤的文章。 顯示所有文章
顯示具有 VIM 標籤的文章。 顯示所有文章

107.08.29 vim 選取模式下貼上不要剪下選取部分

如標題,想簡單描述卻偏複雜
問題是這樣的
當用 v (選取)一些字後,想用 p (貼上)剛剛用 y (複製)下來的東西
但是 vim 在做完 p 後會自動把選取的字 d (剪下)
導致下次 p 時,會貼到剛剛被覆蓋的字

如下範例,第二次用 p 時,正常預期結果是 aaa 但實際卻是 bbb
aaa ---> y 複製
bbb ---> p 貼上 ---> aaa
ccc ---> p 貼上 ---> bbb

107.08.17 vim 自動生成中間路徑

有時候想要新增一個資料夾並編輯裡面的檔案時
總想偷懶
例如:
原本沒有 002_data_copy 資料夾,但要編輯裡面的 main.c
$ vim 002_data_copy/main.c

107.07.25 eclipse for vimer

因為要寫 Java 所以就得用 eclipse (?
主要就是把 eclipse 裝一些插件

107.07.24 在 chrome 用 vim 指令

前幾天直播介紹了一些 vim 的基礎操作
想看的來這裡喔~
投影片:https://hackmd.io/p/ryg-CBkmm#/
YouTube:https://www.youtube.com/watch?v=rs_CrFihrGg

然後最近真的手腕痛
不知是沒在寫字還是什麼原因?
主因應該是滑鼠啦,我的無線滑鼠偏小顆
所以掌根都會貼著桌面,並用手腕在滑,正常要手臂跟著動較不會痠痛

因此就找到這個擴充
連結:cVim

107.07.21 vim 檔案外部修改刷新

如何不關掉 vim 就刷新外部對此檔案的更新?
這其實是頗常見的問題
完成如 gif (在右方更新內容儲存後左邊馬上刷新)


107.04.02 vim runner 介紹

aben20807/vim-runner
來,久等了,星起來,星起來 OuO

107.03.13 vim surrounder 介紹

aben20807/vim-surrounder
同樣來一篇 surrounder OuO
星星都來吧 (x

107.03.13 vim commenter 介紹

aben20807/vim-commenter
感覺就算寫了 README、寫了 doc 還是沒人看啊 QuQ
雖然在這裡介紹也差不多 QuQ
有 GitHub 的可以順手按個星星之類的,我會很感激 QuQ
不過還是想用繁體中文寫一個超完整(?)的介紹
總之,目前寫了3個 plugin 了,沒意外就各來一篇 OuO

107.03.02 解決 ale 的 gcc 不顯示錯誤 | 把 gcc 輸出改成英文

ale 是 vim 裡好用的即時偵錯插件
以前不知道為何 ale 中的 gcc 一直不能用,所以用 clang 就解決
但是本篇要來解決 gcc 的問題 !!!!

由於都沒有報錯誤訊息所以主要能夠排除是 ale 的問題

首先關於 linter 的設定,cpp 改成使用 g++
不要因為 cpp 後面的支援寫 gcc 就用 gcc
let g:ale_linters = {
            \   'cpp': ['g++']
            \}

產生一個有錯的 .cpp 檔
$ vim t.cpp

#include 
#include 
#include 
using namespace std;

int main()
{
    here
    return 0;
}

107.03.01 vim +clipboard

vim 與系統剪貼簿互通相當重要
一般從系統剪貼簿要貼到 vim 可以使用 ctrl + shift + v
而從 vim 複製到系統剪貼簿可以使用 "+y
但是後者必須 vim 有支援 clipboard

使用下面指令可以查看 vim 所支援的配置
$ vim --version
只要看剪貼簿相關可使用
$ vim --version | grep clipboard

一般安裝 vim 時 (使用下面指令) 並不能使用系統剪貼簿
$ sudo pacman -S vim
也就是說不能使用 "+y 把選取的文字複製到剪貼簿中
其 vim --version 如下,可以看到 clipboard 前方是 "-"

107.02.20 manjaro 安裝 vim

竟然沒有 vim @@
安裝個 OuO


$ sudo pacman -S vim 

107.02.09 解決 clang 找不到 iostream

環境:(其他環境應該也可以用類似解法只是路徑不同要自己找一下)
Cygwin
clang++ --version:5.0.1

主要是要寫 C++ 時,ale 報錯:
([clang] 'iostream' file not found [W])
感覺是 clang 的問題,就來解決啦
p.s. 圖片中的 10055_Hashmat_the_brave_warrior 就自動換成 test 囉

107.02.07 如何寫 vim plugin

<注意>
本篇只會紀錄大致需要的架構和一些注意事項、建議以及參考資料
讓以後的我或是想寫一個自己 plugin 的人快速入手或是方便查找相關資料
本篇並不會真的教你寫出一個 plugin 喔

檔案架構

yourplugin/
    doc/
        yourplugin.txt
    plugin/
        yourplugin.vim
    ...
    README
    LICENSE

106.10.27 升級 vim 8 記錄

Vim 8 還頗多好處的
最最主要就是 Async !!!!
支援 Async 的語法檢查、補全插件使用起來順多了
e.g. w0rp/alemaralla/completor.vim

原本最新版本就是 Vim 7.4

106.08.05 completor.vim supported rust in cygwin

因為我目前只會用到C、C++、Rust....
然後裝YCM不知道失敗幾次了QuQ
赫然發現 maralla/completor.vim
優點是不用另外編譯
而且也是非同步補全,不會讓vim卡死
C、C++我不知道為何可以正常使用沒出錯(?
但是Rust就一直不行
之前使用vim-racer也不行
推測是racer不支援cygwin的問題
主要原因可能是cygwin呼叫racer時若使用相對路徑則會發生找不到指定路徑
fork專案過來之後改個地方就解決了,就來記錄個OuO

106.07.26 vim 前置數字v:count使用

同樣是我在寫 aben20807/my_vim/.surround.vim 遇到的
就是前置數字
功能就是
用前置數字來代表要括幾個單字
無前置就是游標所在的單字
然後就查到 v:count

所以~map就可以這樣寫
nnoremap <silent> <Plug>SurroundNadd :<C-u>execute 'call '
    \v:count? '<SID>surroundNadd(v:count)' : '<SID>surroundNadd(1)'<CR>
nmap <M-s> <Plug>SurroundNadd


106.07.26 win10 caps lock換成esc

老實說我沒有很常用到 caps lock
或者說幾乎不用
一般大寫只需要 shift 按住就好
caps lock 反而會造成誤按
然後近期又幾乎使用 vim 所以就來找個方法把 caps lock換成esc
<注意>修改機碼會有未預期錯誤請謹慎使用
<注意>不是 caps lock、esc 交換,而是 caps lock、esc 都變成 esc
要交換還是理解更詳細原理請去這裡(超詳細解說


首先將下面那段存成 capslock2esc.reg (注意副檔名
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00

106.07.23 vim feedkeys 踩雷記錄

feedkeys 實在是....QuQ
雖然還是沒解法不過記錄一下
以後盡全力避免使用

主要原因就是:執行順序不保證!!!!

原本打算寫一個自己用的 surround
功能就是可以加入 ()、[]、{}、''、"" 、<> 而且要包在外面
由於有使用 v:count 所以可以用前置數字來代表要括幾個單字
無前置就是游標所在的單字

簡單範例:(灰色方塊是游標
//TODO OuO FIXME OuO XXX OuO 123
按下 3<ctrl-a>"
會變成
//TODO "OuO FIXME OuO" XXX OuO 123

106.07.19 cygwin+vim+rust

總之就是 vim 當編輯器
Cygwin 當編譯、執行環境
那 Rust 也是剛看到,有點興趣OuO
https://www.rust-lang.org/en-US/install.html


106.07.19 vim map alt(meta) key

由於Cygwin無法自定義按鍵編碼
所以算是測試頗久的

這樣map就能在normal模式下加速,insert模式下也能用hjkl移動了


^ Top