Làm cách nào để tìm và đặt biến môi trường $ EDITOR của tôi?


27

Khi tôi đang sử dụng ipython hoặc ipython3, tôi có thể sử dụng lệnh% edit để mở trình soạn thảo để viết tập lệnh python của mình. Vấn đề của tôi là trình soạn thảo mặc định là vim và tôi thực sự không biết cách sử dụng trình soạn thảo đó. Những gì tôi muốn làm là thay đổi trình chỉnh sửa thành nano hoặc gedit. Tôi nghĩ để ở lại với thiết bị đầu cuối, tôi muốn thay đổi nó thành trình soạn thảo nano.

Khi tôi gõ vào 'chỉnh sửa?' lệnh vào thiết bị đầu cuối ipython nó nói:

% chỉnh sửa chạy hook trình soạn thảo của IPython. Phiên bản mặc định của hook này được đặt để gọi trình soạn thảo được chỉ định bởi biến môi trường $ EDITOR của bạn. Nếu điều này không được tìm thấy, nó sẽ mặc định là vi trong Linux / Unix và notepad trong Windows. Xem phần cuối của chuỗi doc này để biết cách thay đổi hook của trình soạn thảo.

Sau đó, khi tôi nhìn thấy sự kết thúc của chuỗi tài liệu đó, tôi thấy điều này:

Thay đổi hook trình soạn thảo mặc định:

Nếu bạn muốn viết hook trình soạn thảo của riêng mình, bạn có thể đặt nó vào một tệp cấu hình mà bạn tải khi khởi động. Móc mặc định được xác định trong mô-đun IPython.core.hooks và bạn có thể sử dụng nó làm ví dụ bắt đầu cho các sửa đổi tiếp theo. Tệp đó cũng có hướng dẫn chung về cách đặt móc mới để sử dụng khi bạn đã xác định tệp đó.

Xin lỗi để trở thành một người mới như vậy, nhưng tôi bị lạc ở đây. Tôi không chắc chắn làm thế nào để truy cập mô-đun IPython.core.hooks hoặc chỉ đơn giản là đặt biến môi trường $ EDITOR thành nano.

Bất kỳ đề xuất?

Câu trả lời:


37

Bạn có thể đặt $EDITORbiến với lệnh này:

export EDITOR="/usr/bin/nano"

Điều này sẽ xác định biến EDITORcho phiên hiện tại và chuyển nó vào môi trường của tất cả các quy trình con của nó. Để đặt nó vĩnh viễn, bạn phải xác định nó trong một trong các tệp cấu hình hệ thống. Mức cao nhất mà bạn có thể làm điều này là đặt nó vào /etc/environment. Điều này định nghĩa nó trên toàn cầu:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EDITOR="/usr/bin/nano"

Kiểm tra biến đó được xác định:

$ echo $EDITOR
/usr/bin/nano

Lưu ý của biên tập viên: thường nên đặt các biến môi trường theo cách riêng của bạn ~/.profile, việc khắc phục sẽ dễ dàng hơn rất nhiều nếu có sự cố.


Tôi đã thêm dòng 'EDITOR = "/ usr / bin / nano"' vào tệp / etc / môi trường của tôi, nhưng dường như nó không hoạt động. Tôi có cần khởi động lại không?
Willoczy

Bây giờ khởi động lại hệ thống của bạn và cài đặt sẽ được áp dụng.
Danatela

bắt đầu một phiên mới và bạn đã hoàn tất
Luis Siquot

3
Bạn không cần phải khởi động lại để các thay đổi có hiệu lực, chỉ cần chạy source /etc/environmentsau khi bạn chỉnh sửa tệp.
cremefraiche

@cremefraiche Tôi sợ điều đó không đúng. Nó không phải là một tập tin kịch bản nên bạn không thể "nguồn" nó. Nó sẽ đúng cho các tệp cấu hình phổ biến khác, chẳng hạn như .profile. Điều tốt nhất bạn có thể làm là đăng xuất và đăng nhập lại. Đó là lần duy nhất mà tập tin được đọc. Đọc đoạn ngắn này: help.ubuntu.com/community/...
Haggra

18

Thêm dòng

export EDITOR=nano

để của bạn ~/.profile~/.bashrcnhư trong hình ảnh sau đây. Đừng không đặt dấu ngoặc kép quanhnano

nhập mô tả hình ảnh ở đây

và sau đó chạy

source ~/.profile 
source ~/.bashrc

tại dấu nhắc sau khi sửa đổi .profile.bashrcđể sửa đổi có hiệu lực.

nhập mô tả hình ảnh ở đây

Bây giờ %edittrong ipythonsẽ mở nano.

~/.bashrc sẽ được gọi cho interactive + non-loginshell

trong khi đó ~/.profilesẽ được gọi chointeractive + login shell

Trong trường hợp của bạn nó là đủ để chỉ cần thêm nó vào ~/.bashrcthay ~/.profile.


1
.bashrcnên chỉ được sử dụng cho các thiết lập Bash cụ thể (ví dụ, tùy chọn vỏ, bí danh, vv) trong khi .profilenên được sử dụng để thiết lập các biến môi trường như EDITOR(được sử dụng bởi các chương trình như sudoedit, git, vv). Xem unix.stackexchange.com/a/3085/22812unix.stackexchange.com/a/42765/22812
Anthony G - công lý cho Monica
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.