Vim 快速補齊 PHP function 名稱

使用 IDE 介面大多數都會有自動補齊 Function 等功能, 那 Vim 寫 PHP 時該如何達到相同的事呢?

首先需要一個字典檔, 就是 PHP 所有 function 的列表: PHP: Manual Quick Reference

於這頁只要滑鼠選取後, 就可以得到 funclist.txt (funclist.txt.gz 這是存好的, 可直接下載解壓縮後, 直接取用)

funclist.txt 內容

funclist.txt 內容就是每個 function-name 都獨立一行, ex:

abs
acos
acosh
addcslashes
addslashes
...

設定步驟

  1. 取得 funclist.txt
  2. 將 funclist.txt 放到 ~/.vim 內. (mv funclist.txt ~/.vim)
  3. 設定 ~/.vimrc

    set dictionary-=~/.vim/funclist.txt

在寫 PHP 時, 就可以 Ctrl + p / Ctrl + n 達成 Function 自動補齊的功能囉~

註: 輸入 my 後, 直接 Ctrl + p 就可以上下選, Enter 就會自動將選取的補齊.


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

Vim 快速補齊 PHP function 名稱 有 12 則回應

  1. johnpupu 說道:

    我在vim 有設定autocomplete
    按tab 觸發
    看起來也可以自動補齊
    php function
    以下是ref link
    給tsung 大參考
    http://wiki.geckos.cn/index.php/Vim%E4%B8%AD%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A1%A5%E5%85%A8
    http://blog.othree.net/log/vim/

  2. Tsung 說道:

    感恩, 真是方便的 Plugin, 我取用這兩個~
    SuperTab: 用 Tab 就可以不用 Ctrl + p / n.
    http://www.vim.org/scripts/script.php?script_id=1643
    autocomplpop.vim: 自動列出所有相關的字 (有時後會有點卡卡的)
    http://www.vim.org/scripts/script.php?script_id=1879

  3. johnpupu 說道:

    ^^
    對了 突然想到
    想請教一下Tsung 大
    這樣大大在縮排的時後會不會都沒什麼作用了

  4. Tsung 說道:

    不會耶, 還是好好的阿. @.@a..

  5. johnpupu 說道:

    恩 content 沒貼到
    /* comment */ function xxx()
    {
    print okok;
    }
    要是這樣的話...用vim 去indent 的話會有問題
    我昨天有email 給php.vim 的作者..
    回應如下
    Hello,
    Comments in front of function declarations (or at start of lines in general) are currently not supported by the php indent script.
    I may add support for it but it will depends on the resulting impact on speed... (stripping comments of every line to analyze may reduce indentation speed by a big factor.)
    John
    在等看看囉
    我自已是先把/usr/local/share/vim72/indent/php.vim
    先拿掉了

  6. Tsung 說道:

    我用的不是他的, 但是我也忘記從哪邊找來的了..
    我寄給您, 您試試看~ 🙂

  7. Girvan 說道:

    我記得有內建這一個...
    是按哪兩個按鍵我忘了說!

  8. Tsung 說道:

    應該是 Ctrl + p / Ctrl + n, 不過應該都需要有字典檔.
    我猜是您的 php.vim 有含這些?

  9. sankai 說道:

    雖然我沒用Vim,但這邊分享我製作字典檔的方法,一波三折呀/__\
    http://doublekai.org/blog/?p=563
    原來只要很單純的語法就可以製作出來的可以用PHP語法產生字典檔

  10. Tsung 說道:

    嗯嗯, 這做法蠻不錯的.
    可以自動更新來產生這個檔案, 而且其它 function 也很棒~ 😀
    get_defined_constants, get_defined_functions, get_declared_interfaces, get_declared_classes, get_extension_funcs, get_class_methods, spl_classes.
    非常有用, 之後測試後再整理寫一寫, 感恩~ Orz..

  11. c9s 說道:

    如果是 ditionary completion 用 C-x C-k 就可以了。 會比 C-n,C-p 來得快。(因為 C-n,C-p 是做 global 搜尋 )
    我記得 php 的 function completion 已經有人寫 plugin 了。

  12. Tsung 說道:

    耶, 但是 C-x C-k 我試不行耶.
    plugin 我剛剛直接找是沒看到, 不過找到這個:
    http://vim.wikia.com/wiki/PHP_manual_in_Vim_help_format
    看起來好像也是類似的功能. 😛

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料