thảo luận Hội chơi vim/nvim

greans

Member
Ở đây có thím nào dùng vim(nvim) editor không nhỉ
Em cũng dev js quèn thôi (react, node, ...) trước giờ vốn dùng vscode. Nhưng hồi cách đây không lâu, thấy thằng đồng nghiệp người pháp dùng vim đỉnh quá, đỉnh đây không phải là tỏ vẻ nguy hiểm mà thấy nhanh thực sự nên cũng cắp sách đi học nó.
Qua thời gian bỡ ngỡ ban đầu (giờ vẫn chưa quen), tới bây giờ chắc là 3 tháng rồi mới thấy vim nó quá mạnh. Bên cạnh hệ thống phím tắt khủng thì vim is extremely extensible (em không biết dùng chữ gì cho phù hợp) hàng tá plugin cho mọi nhu cầu. với cái vim-coc thì intellisense không khác gì vscode. Vì vim console-based nên cực nhanh.
Mỗi ngày đều ráng học tricks từ thằng người pháp nhợn, mới có da lông thôi mà đã cảm thấy thao tác nhanh hơn hẳn vscode

Thím nào có biết plugin nào hay hoặc trick nào thì cùng chia sẻ nhé

Mớ plugin hiện tại của em (xào từ của thằng người pháp)
Code:
        Plug 'ntpeters/vim-better-whitespace'
        Plug 'jiangmiao/auto-pairs'
        Plug 'alvan/vim-closetag'
        Plug 'tomtom/tcomment_vim'
        Plug 'tommcdo/vim-lion'
        Plug 'easymotion/vim-easymotion'
        Plug 'baspar/vim-cartographe'
        Plug 'scrooloose/nerdtree'
        Plug 'terryma/vim-multiple-cursors'
        Plug 'junegunn/vim-peekaboo'
        Plug 'mhinz/vim-startify'
        Plug 'pangloss/vim-javascript'
        Plug 'leafgarland/typescript-vim'
        Plug 'MaxMEllon/vim-jsx-pretty', {'for': ['typescript', 'javascript', 'typescriptreact', 'javascriptreact']}
        Plug 'jparise/vim-graphql'
        Plug 'sheerun/vim-polyglot'
        Plug 'mbbill/undotree'
        Plug 'tpope/vim-repeat'
        Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
        Plug 'junegunn/fzf.vim'
        Plug 'tpope/vim-fugitive'
        Plug 'junegunn/gv.vim'
        Plug 'machakann/vim-sandwich'
        Plug 'machakann/vim-highlightedyank'
        Plug 'kana/vim-textobj-user'
        Plug 'beloglazov/vim-textobj-quotes'
        Plug 'tpope/vim-dispatch'
 
Last edited:
Dè de, mong mãi mới có topic này.
Em xài neovim và gần đây mới thử cái floating windows kết hợp với fzf, cái floating này có thể mod để hiển thị bất cứ thứ gì chứ không riêng output của fzf, ví dụ show inline docs.


thím thêm code này vào phần gọi fzf
Bash:
function! FloatingFZF()
  let buf = nvim_create_buf(v:false, v:true)
  call setbufvar(buf, '&signcolumn', 'no')
 
  let height = float2nr(20)
  let width = float2nr(100)
  let horizontal = float2nr((&columns - width) / 2)
  let vertical = 0 " float2nr((&lines - height))
 
  let opts = {
        \ 'relative': 'editor',
        \ 'row': vertical,
        \ 'col': horizontal,
        \ 'width': width,
        \ 'height': height,
        \ 'style': 'minimal'
        \ }
 
  call nvim_open_win(buf, v:true, opts)
endfunction

let g:fzf_layout = { 'window': 'call FloatingFZF()' }
 

greans

Member
Dè de, mong mãi mới có topic này.
Em xài neovim và gần đây mới thử cái floating windows kết hợp với fzf, cái floating này có thể mod để hiển thị bất cứ thứ gì chứ không riêng output của fzf, ví dụ show inline docs.


thím thêm code này vào phần gọi fzf
Bash:
function! FloatingFZF()
  let buf = nvim_create_buf(v:false, v:true)
  call setbufvar(buf, '&signcolumn', 'no')

  let height = float2nr(20)
  let width = float2nr(100)
  let horizontal = float2nr((&columns - width) / 2)
  let vertical = 0 " float2nr((&lines - height))

  let opts = {
        \ 'relative': 'editor',
        \ 'row': vertical,
        \ 'col': horizontal,
        \ 'width': width,
        \ 'height': height,
        \ 'style': 'minimal'
        \ }

  call nvim_open_win(buf, v:true, opts)
endfunction

let g:fzf_layout = { 'window': 'call FloatingFZF()' }
Cái này làm gì vậy thím, em vẫn chưa rành vim language


btw, fzf mới có update show preview ví dụ
1584421136367.png
 
Chủ yếu là vim-coc
View attachment 7297
Ví dụ trên mấy thím có thể thấy là có warning từ linter
Có suggestion và definition của function
thế cái list intellsense cài vào lấy ở đâu thím

vd: react thì cài cái gì
code node thì cài cái gì

e code python thì cài cái gì
code go thì cài cái gì .....

còn nữa function nhiều lúc quên thì có gợi ý k thím(các loại ngôn ngữ khác nhau thì cài package nào để intellsene ạ)
 

greans

Member
thế cái list intellsense cài vào lấy ở đâu thím

vd: react thì cài cái gì
code node thì cài cái gì

e code python thì cài cái gì
code go thì cài cái gì .....

còn nữa function nhiều lúc quên thì có gợi ý k thím(các loại ngôn ngữ khác nhau thì cài package nào để intellsene ạ)
Google thôi thím, ví dụ đây là danh sách plugin cho coc em đang xài, cái coc-tsserver là đủ để intellsense cho js (cả react, js, node, ts)
1584421624740.png

syntax thì có nhiều package ví dụ như vim-javascript
 
Có thím nào config thành công vim với godot engine để code gdscript trên vim chưa? Đầy đủ báo lỗi syntax và code suggestion.
Mình config được code suggestion rồi nhưng cái linter qua Ale bị xì ke, toàn báo lỗi nguyên file ở line cuối cùng, phải gõ :Aleinfo lên đọc :cold:
 
Thấy bảo Visual Studio Code giờ đang thắng mà?
Bỏ vim xa lắc lơ
Vim có bao giờ phải cạnh tranh với ai đâu thím. Hồi giờ nó chỉ dành cho 20% dev thôi, năm nào cũng ổn định ở khoảng đấy (theo thống kê của stackoverflow), vì editor là sở thích cá nhân chứ không phải sản phẩm thị trường cần đánh dấu thành công bằng thị phần. MS cần vscode để quảng bá hệ sinh thái Windows, còn Vim đứng sau là một cộng đồng dev được coi là khổ dâm và cũng không có mục đích khuyến dụ ai lấy thị phần editor cả. :beauty:
 

greans

Member
Có thím nào config thành công vim với godot engine để code gdscript trên vim chưa? Đầy đủ báo lỗi syntax và code suggestion.
Mình config được code suggestion rồi nhưng cái linter qua Ale bị xì ke, toàn báo lỗi nguyên file ở line cuối cùng, phải gõ :Aleinfo lên đọc :cold:
Không code go nên chịu thím à
 
thím có setting vim nào hay hay k share e với, nhìn mặc định xấu quá
à làm việc với project, bật 2 3 file 1 lúc để so sánh ...., chuyển tab thì dùng thế nào vậy thím, view project tree nua
 
Last edited:
thím có setting vim nào hay hay k share e với, nhìn mặc định xấu quá
à làm việc với project, bật 2 3 file 1 lúc để so sánh ...., chuyển tab thì dùng thế nào vậy thím, view project tree nua
Làm với nhiều project, view tree thì dùng plugin NERDtree là đủ.
Chuyển giữa các tab (gt, gT), new tab :)tabnew)
Split cửa sổ nhiều file để so sánh: ctrl + w + s, ctrl + w + v
Sơ sơ vậy chứ phím tắt thì thím nên google là có hết, hoặc là tự học trong chính Vim luôn, bắt đầu bằng :Tutor
Tôi chân thành khuyên thím nên học theo Vim tutor, tất cả thao tác cơ bản trong đó có hết, xong thì mới tính đến cài plugin, chứ xài plugin từ đầu rồi lại lệ thuộc vào nó, đó không phải tinh thần của Vimmer.
 

greans

Member
Làm với nhiều project, view tree thì dùng plugin NERDtree là đủ.
Chuyển giữa các tab (gt, gT), new tab :)tabnew)
Split cửa sổ nhiều file để so sánh: ctrl + w + s, ctrl + w + v
Sơ sơ vậy chứ phím tắt thì thím nên google là có hết, hoặc là tự học trong chính Vim luôn, bắt đầu bằng :Tutor
Tôi chân thành khuyên thím nên học theo Vim tutor, tất cả thao tác cơ bản trong đó có hết, xong thì mới tính đến cài plugin, chứ xài plugin từ đầu rồi lại lệ thuộc vào nó, đó không phải tinh thần của Vimmer.
Thím này nói chuẩn này, học qua vim tutor trước
 
Top