Neovim là gì? Nó khác với Vim như thế nào? Và tại sao tôi phải quan tâm?


118

Tôi đã nghe về Neovim ; nó khác với Vim như thế nào? Tất cả các điểm trên trang chủ chỉ là những thay đổi về kiến ​​trúc 'dưới mui xe'. Là người dùng, sự khác biệt đối với tôi là gì?


1
Tính năng không đồng bộ là một trình bảo vệ cuộc sống. Nó làm cho vim trở nên trôi chảy hơn rất nhiều và rất nhiều plugin có thể tận dụng lợi thế của nó.
tummyip

Gia sư được cải thiện. Có vẻ khác nhau.
Fernando Rodriguez

"Một trang web đẹp mắt, đó là một điều Neovim đã làm đúng." - Bram Moolenaar từ cuộc phỏng vấn
michael

Một số lựa chọn cơ bản có vẻ kỳ quặc và không liên quan cho các mục tiêu chính ... Rất nhiều cảm giác giống như một người không thích mã cũ và muốn thực hiện nó đúng. Tôi có thể đồng ý rằng mã cũ là xấu. Nhưng nó sẽ mất rất nhiều nỗ lực để thực hiện một triển khai mới. Nó rất giống với những gì đã xảy ra với Elvis: Việc viết lại sẽ giúp nó tốt hơn nhiều, nhưng mất rất nhiều thời gian, trong đó Vim đã thêm nhiều tính năng, cuối cùng không có nhiều người dùng Elvis. Và Elvis viết lại có thể có mã đẹp, nhưng người dùng không nhận thấy điều đó. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Tôi hy vọng rằng những điều tốt đẹp mà NeoVim nghĩ ra có thể được thêm lại vào Vim. Ý tôi là, ai không muốn hỗ trợ plugin tốt hơn, GUI tốt hơn và nhúng? Câu hỏi lớn là làm thế nào để làm điều đó, và ai sẽ thực hiện nó đúng cách. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Câu trả lời:


81

Giống như trang chủ neovim mô tả, mục tiêu của neovim là mở đường cho một dự án nguồn mở tốt hơn và hướng tới cộng đồng tốt hơn.

Các thay đổi kiến ​​trúc không chỉ mang lại sự ổn định hơn và cải thiện hiệu suất cho vim mà còn làm cho mã dễ bảo trì hơn rất nhiều và làm giảm rào cản nhập cảnh cho bất kỳ ai quan tâm đóng góp.

Một trong những thay đổi chính cũng bao gồm tính năng cốt lõi của quyền truy cập để thực hiện các công việc / nhiệm vụ không đồng bộ trong vim, đây là một trong những tính năng được yêu cầu nhiều nhất của vim từ lâu. Điều này có thể giúp cải thiện hiệu suất của vim hơn nữa đặc biệt là vì vim sẽ không phải chặn trong khi một công việc nền đang làm gì đó.

Là người dùng vim, không có nhiều thay đổi ngoài việc neovim sẽ phát triển như một phần mềm nhanh hơn nhiều (khắc phục sự cố, thêm tính năng) so với stock vim và về lâu dài nó sẽ có hiệu suất tốt hơn.


24
+1. Tôi cũng nói thêm rằng thực tế là sẽ có rất ít thay đổi người dùng nhìn thấy là một điều tốt.
carlosdc

27
Điều này đọc giống như một bản phát hành lại của một thông cáo báo chí chứ không phải là một bản tóm tắt thực sự về lý do tại sao một ai đó nên quan tâm. Ví dụ, tôi đã sử dụng vim trong hai thập kỷ và không thể nhớ lần cuối cùng chương trình cốt lõi cho tôi thấy bất kỳ loại bất ổn nào, vậy tại sao tôi phải quan tâm đến "ổn định hơn"?
Caleb

2
Các tác vụ không đồng bộ có nghĩa là không còn chặn giao diện của vim để thực hiện công việc có thể ở chế độ nền.
alxndr

3
Có bằng chứng nào trong hai năm rằng neovim đã hoạt động rằng nó phát triển nhanh hơn và có hiệu suất tốt hơn không?
Sparhawk

8
Không còn đúng khi Vim không hỗ trợ chạy các công việc nền một cách không đồng bộ.
Giàu

35

Tôi đang giải quyết cụ thể:

Tại sao tôi phải quan tâm? Là người dùng, sự khác biệt đối với tôi là gì?

Điều tôi thích thú nhất khi là người dùng Vim là các loại plugin, tích hợp và giao diện mới sẽ được kích hoạt bởi những thay đổi trong phần mềm của Neovim.

Khi thời gian trôi qua, bạn sẽ bắt đầu thấy các plugin và chương trình thực sự ấn tượng hoạt động với Neovim chứ không phải Vim. Có một danh sách các plugin dành riêng cho Neovim: ở đây trong github của neovim .

Tôi không biết nó cập nhật như thế nào, nhưng tôi rất vui khi thấy nó phát triển khi chúng ta có nhiều công cụ hơn để làm cho mã hóa hiệu quả và thú vị hơn.


15

Bổ sung yêu thích của riêng tôi Neovim mang đến bàn là chế độ thiết bị đầu cuối. Bây giờ bạn có thể tách cửa sổ Neovim của mình và có trình giả lập thiết bị đầu cuối chạy ở một bên và đang chỉnh sửa một tệp ở phía bên kia! Tôi cho rằng bạn thậm chí có thể chạy Neovim bên trong chính nó bây giờ, chỉ trong trường hợp bạn thực sự muốn làm điều đó.

Có các plugin không đồng bộ cũng sẽ sớm cực kỳ hữu ích; điều này có nghĩa là cuối cùng chúng ta cũng có thể hoàn thành mã thực sự tốt, chỉ sau 40 năm chờ đợi!

Neovim cũng hỗ trợ chuột tốt hơn Vim.


2
Họ nên gọi nó là Metavim: P
Tumbler41

Tôi không biết bất kỳ thay đổi cụ thể nào về chuột mà Neovim có sẽ làm cho nó tốt hơn Vim.
jamessan

Điều bạn nghĩ đến bây giờ là bạn có thể tham gia phiên ssh cuối, mở Neovim và nhấp vào một vị trí để chỉnh sửa nó. Tôi không nghĩ Vim có thể làm điều đó, mặc dù có thể là tôi chưa có .vimrc đủ lớn! Tôi đoán điều này có thể được gọi là hỗ trợ ssh tốt hơn so với hỗ trợ chuột.
Johnathan Andersen

Chắc chắn có thể sử dụng chuột trong Vim qua kết nối SSH (tôi mới dùng thử), nhưng nếu bạn không thể làm cho nó hoạt động trong Vim và nó hoạt động theo mặc định trong NeoVim, tôi đoán đó là một biểu dữ liệu có lợi cho tuyên bố của bạn rằng hỗ trợ trong NeoVim là tốt hơn;).
Giàu

1
Tôi đã sử dụng chuột trong Vim thông thường qua SSH từ Putty chạy trên Windows với một set mouse=adòng duy nhất trong vimrc trong một thời gian dài
Thunderbeef

5

Hai điểm chưa được giải quyết bằng các câu trả lời khác và có thể thú vị cho người dùng, thậm chí hoặc đặc biệt là người dùng mới không có tệp cấu hình (hoặc với một tệp nhỏ):

  1. NeoVim nào không cố gắng để được Vi tương thích theo mặc định. Họ đã thay đổi nhiều giá trị mặc định cho cài đặt và đang tích cực thảo luận về các thay đổi đó: # 2676 , # 6289
  2. Nó có thể được nhúng trong một quy trình khác (có nhớ tích hợp netbeans không?) Và có nhiều GUI khác nhau để MacVim không còn là GUI dễ sử dụng nhất mà bạn có thể tìm thấy cho mình $EDITOR.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.