Vim (; viết tắt của Vi IMproved) là một trình soạn thảo văn bản miễn phí và mã nguồn mở. Đó là một bản sao cải tiến của vi của Bill Joy cho Unix. Nó được viết bởi Bram Moolenaar dựa trên mã nguồn của một port của Stevie editor lên Amiga và phát hành lần đầu vào năm 1991. Vim được thiết kế cho cả trong giao diện dòng lệnh và và như một ứng dụng độc lập trong giao diện người dùng đồ họa. Vim là một phần mềm tự do nguồn mở và được phát hành theo giấy phép bao gồm một số điều khoản từ thiện, khuyến khích người dùng yêu thích phần mềm xem xét ủng hộ cho trẻ em Uganda. Giấy phép bao gồm GNU General Public License thông qua một điều khoản đặc biệt cho phép phân phối các bản sao sửa đổi "theo GNU GPL v2 hoặc bất kỳ phiên bản nào sau này". Mặc dù ban đầu nó được phát hành cho Amiga, Vim từ đó đã được phát triển thành đa nền tảng, hỗ trợ nhiều nền tảng khác. Năm 2003, nó được bình chọn là trình soạn thảo phỏ biến nhất theo độc giả của "Linux Journal"; năm 2015 một khảo sát trên Stack Overflow cho thấy nó là trình soạn thảo phổ biến thứ ba, và môi trường phát triển phổ biến thứ năm trong năm 2018. Vim script (cũng goi là vimscript hay VimL) là ngôn ngữ scripting tích hợp trong Vim. Dựa trên ngôn ngữ trình soạn thảo ex của trình soạn thảo vi ban đầu, các phiên bản đầu tiên của Vim đã thêm các lệnh cho các luồng điều khiển và các định nghĩa hàm. Từ phiên bản 7, Vim script cũng hỗ trợ các kiểu dữ liệu nâng cao hơn như danh sách và từ điển và (một dạng đơn giản) lập trình hướng đối tượng. Các hàm dựng sẵn như map() và filter() cho phép một dạng cơ bản của lập trình hàm, và Vim script có lambda từ phiên bản 8.0. Vim script chủ yếu được viết theo kiểu lập trình mệnh lệnh. Vim macros có thể chứa một chuỗi các lệnh chế độ thông thường, nhưng cũng có thể gọi các lệnh hoặc các hàm cũ được viết bằng Vim script cho các tác vụ phức tạp hơn. Hầu như tất cả các phần mở rộng (được gọi là các plugin hoặc các script phổ biến) của core Vim được viết bằng Vim script, nhưng các plugin cũng có thể sử dụng các ngôn ngữ thông dịch khác như Perl, Python, Lua, hay Ruby (nếu hỗ trợ cho chúng được biên dịch vào nhị phân Vim). Các file script Vim được lưu trữ ở định dạng ký tự thuần với phầm mở rộng là.vim. Có sẵn thư viện cho tập lệnh Vim trên như các plugin Vim. Trong khi "vi" ban đầu chỉ có sẵn trên Unix, Vim được port sang nhiều hệ điều hành khác bao gồm AmigaOS (nền tảng mục tiêu ban đầu), Atari MiNT, BeOS, DOS, Windows bắt đầu từ Windows 95, OS/2, OS/390, MorphOS, OpenVMS, QNX, RISC OS, Linux, BSD, và Classic Mac OS. Also, Vim is shipped with every copy of Apple macOS. Các port độc lập của Vim cũng có sẵn trên cảAndroid và iOS. Neovim là một phần mở rộng của Vim cố gắng cải thiện khả năng mở rộng và bảo trì của Vim. Neovim có cùng cú pháp cấu hình với Vim; kết quả là, cùng file cấu hình có thể được sử dụng với cả hai trình soạn thảo. Kể từ phiên bản 0.1, phát hành tháng 12/2005, Neovim tương thích với hầu hết tính năng của Vim. Dự án Neovim được khởi động năm 2014, với một số thành viên cộng đồng Vim cung cấp hỗ trợ sớm cho nỗ lực tái cấu trúc cấp cao để cung cấp kịch bản, plugin và tích hợp tốt hơn với GUI hiện đại. Dự án là mã nguồn mở và toàn bộ code có sẵn trên Github. NeoVim đã gây quỹ thành công vào ngày 23/3/2014, hỗ trợ ít nhất một nhà phát triển toàn thời gian. Một số giao diện đang được phát triển, tận dụng khả năng của Neovim. Trình soạn thảo Neovim có sẵn trên PPA của Ubuntu, và một vài dịch vụ quản lý gói khác, khiến nó có thể cài đặt trên một loạt các hệ điều hành dựa trên Linux.