Làm cách nào tôi có thể biến Sublime Text thành trình chỉnh sửa mặc định cho Git?


216

Tôi gặp sự cố khi cài đặt Sublime Text 2 như core.editorvới git.

Tôi đã đọc qua mỗi bài đăng tôi có thể tìm thấy giải quyết vấn đề, nhưng vẫn không có gì hiệu quả với tôi. Tôi đang chạy Windows.

Tôi đã làm:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

và đã thử điều đó với các đối số khác nhau như -m. Khi tôi mở .gitconfig, đây là những gì có trong đó:

[user]
    name = Spencer Moran
    email = smoran02@gmail.com
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

Nếu tôi đi đến Git và gõ:

README.markdown --edit

tệp README mở trong Notepad, không phải văn bản cao siêu.

Có ai biết tôi đang làm gì sai không hoặc làm thế nào tôi có thể sửa cái này?


11
Nếu bạn chỉREADME.markdown --edittrong cmd.exe, hoàn toàn gitkhông liên quan. Thay đổi liên kết tệp của bạn trong windows nếu bạn muốn nó hoạt động.
Mat

1
Một FYI chung cho hầu hết các câu trả lời dưới đây: -wcó nghĩa là "Đợi tệp được đóng trước khi quay lại" và -ncó nghĩa là "Mở một cửa sổ mới". Nguồn: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese

Cài đặt yêu thích của tôi để sử dụng Sublime Text 3 làm trình chỉnh sửa git của tôi: stackoverflow.com/questions/2596805/ Kẻ
Gabriel Staples

Câu trả lời:


343

các cửa sổ

Văn bản cao siêu 2 (Bản dựng 2181)

Build 2181 mới nhất chỉ cần thêm hỗ trợ cho -wđối số dòng lệnh (chờ). Cấu hình sau đây sẽ cho phép ST2 hoạt động như trình chỉnh sửa git mặc định của bạn trên Windows. Điều này sẽ cho phép git mở ST2 cho các thông điệp cam kết và như vậy.

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Văn bản cao siêu 3 (Bản dựng 3065)

Sublime Text 3 (Build 3065) đã thêm trình subl.exetrợ giúp dòng lệnh. Sử dụng subl.exe -hcho các tùy chọn có sẵn cho bạn. Tôi có hot_exit: trueremember_open_files: truethiết lập trong cài đặt người dùng Sublime Text của mình. Tôi đã tìm thấy sau đây để git config hoạt động tốt cho tôi.

git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"

Mac và Linux

Đặt Sublime làm trình chỉnh sửa của bạn cho Git bằng cách nhập lệnh sau trong thiết bị đầu cuối:

git config --global core.editor "subl -n -w"


Với cấu hình Git này, tab mới được mở trong trình chỉnh sửa của tôi. Tôi chỉnh sửa tin nhắn cam kết của mình, lưu tab ( Ctrl+ S) và đóng nó ( Ctrl+ W).

Git sẽ đợi cho đến khi tab được đóng để tiếp tục công việc.


14
Cá nhân, ngoài việc cài đặt trình chỉnh sửa của tôi như @jrotello gợi ý, trải nghiệm ST2 / git của tôi đã cải thiện rất nhiều khi tôi thêm các tùy chọn sau vào cài đặt ST2 của mình: {"hot_exit": false, "memory_open_files": false, "close_windows_when_empty" }
Sandy

6
@Phrogz: Tôi đã có thể làm cho nó hoạt động trong .gitconfig của mình với cú pháp sau:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
Awayken

4
Đối với tôi, điều này sẽ mở một tab mới nếu văn bản cao siêu đã được mở. Đóng tab, không cho git biết nó đã xong. Tôi đã thử - nhiều thứ, nhưng dường như không làm gì cả.
David Faivre

5
lưu ý rằng khi hot_exitsai và đèn tắt, tất cả các công việc chưa được lưu sẽ bắt đầu !!!!!!!!!!
Jürgen Paul

4
Trên thực tế, bằng cách sử dụng "-n -w", git dường như không thể nói rằng cửa sổ văn bản cao siêu đã đóng (nếu tôi có một cửa sổ siêu phàm hiện có mở ít nhất). "-W --multiinstance" dường như vẫn hoạt động tốt nhất, mặc dù trong cửa sổ siêu phàm mới, bất kỳ tab hiện có nào được mở lại. Dường như họ có thể bị bỏ qua một cách an toàn.
David Faivre

94

Bạn có thể sử dụng lệnh này trên Mac và Linux:

git config --global core.editor "subl -n -w"

26
Trên thực tế, đề xuất trên Mac hiện nay là symlink subl đến một nơi nào đó trong $ PATH của bạn và đặt trình chỉnh sửa của bạn thành 'subl -w'. Đó là trong các tài liệu chính thức.
Sandy

8
Các tài liệu tôi đã đề cập là: sublimetext.com/docs/2/osx_command_line.html
Sandy

8
Các tài liệu nói sẽ sử dụng subl -w, nhưng nếu bạn có các tab khác mở thì điều này sẽ không hoạt động chính xác. Tôi đã tìm thấy subl -n -whoạt động tốt hơn kể từ khi nó mở một cửa sổ mới.
iano

1
@iano nếu tôi làm điều đó tôi nên đóng tab hoặc đóng cửa sổ để cam kết? đóng cửa sổ không hoạt động
Karthik T

Điều này mở ra một tài liệu trống trong siêu phàm cho tôi cho đến khi tôi làm theo các hướng dẫn sau: sublimetext.com/docs/3/osx_command_line.html nhưng đã thay đổi đường dẫn từ Sublime Text.app sang Sublime Text 2.app
Evanss 10/07/2015

14

Đối với Mac OS X trong tệp ~ / .gitconfig trong [core] tôi đã phải đặt mã này để giải quyết vấn đề của mình.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

Đây là khi subl hoạt động tốt nhưng git không thể truy cập nó. Và đã hiển thị những lỗi này

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.

11

Đối với Mac & Văn bản tuyệt vời 3 :

Nếu git config --global core.editor "subl -n -w"không hoạt động, sử dụng git configlệnh này :

$ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

Lưu ý: nó không chứa dấu gạch chéo ngược.


7

những gì đã làm việc cho tôi trong cygwin / zsh:

trong / usr / local / bin tạo tập tin subl_git

#!/bin/bash
/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`

trong gitconfig:

editor = /usr/local/bin/subl_git

xin lỗi người mới của tôi nhưng làm thế nào để tôi truy cập gitconfig? Điều này khác với chạy git config --list? Cảm ơn trước.
Ryan Chase

chỉ liệt kê chúng ra bạn đã chỉnh sửa gitconfig của mình
meeech 8/12/2016

Tôi đã có một khoảng trống trong thư mục người dùng của mình vì vậy tôi đã sử dụng một sửa đổi -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Đánh dấu

6

Với Sublime Text 2 và cấu hình sau, nếu không có gì xảy ra khi bạn đóng tệp nhận xét của git commit:

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Nếu cam kết git không kết thúc khi bạn đóng tệp nhận xét COMMIT_EDITMSG trong Sublime, tôi đã thấy điều này có thể là do bạn đang chạy CMD ở chế độ quản trị viên (và đã có Văn bản tuyệt vời đã được mở ở chế độ không phải quản trị viên). Tôi đã cùng một vấn đề và nó làm việc cho tôi khi tôi bắt đầu tôi CMD trong chế độ bình thường.

Ps: chỉ muốn trả lời cho vấn đề @david đã chỉ ra trong các bình luận của câu trả lời được chấp nhận, nhưng tôi không thể đăng bình luận vì tôi mới ở đây ... vì vậy tôi đã đưa ra một câu trả lời mới, vì tôi nghĩ rằng đây có thể là hữu ích cho một số người gặp phải vấn đề.


Cảm ơn vì tiền hỗ trợ. Bạn có biết một giải pháp?
Scott Wegner

@ScottWegner Chỉ cần khởi chạy CMD của bạn ở chế độ không phải quản trị viên, như một cách giải quyết. Bạn không cần ở chế độ quản trị để chạy các lệnh git. Tuy nhiên, nếu bạn thực sự cần ở chế độ quản trị viên, thì tôi đã không tìm thấy giải pháp cho việc này, ngoại trừ mở một phiên bản CMD khác.
Francois

Cảm ơn đã theo lên. Tôi kết thúc với các shell nâng cao vì môi trường phát triển của tôi yêu cầu chế độ quản trị viên cho các công cụ khác (Visual Studio), do đó tôi chạy toàn bộ shell của mình. Tôi nghĩ rằng tôi sẽ khám phá chỉ nâng cao các công cụ cần nó.
Scott Wegner

1
@ScottWegner Cá nhân tôi sử dụng Cmder (phiên bản đầy đủ thậm chí bao gồm msysgit). Nó cho phép các phiên bản mulitple của CMD, bash hoặc các Shell khác, trong một cửa sổ duy nhất có các tab. Bạn có thể khởi chạy một số tab ở chế độ quản trị viên và các tab khác ở chế độ bình thường. Tôi thường có một tab dành riêng cho git và các tab khác cho các công cụ khác của tôi. Có lẽ bạn sẽ quan tâm đến việc thử nó. Đó là một công cụ tuyệt vời!
Francois

re: chế độ quản trị - tôi nghĩ mẹo ở đây là shell và sublime của bạn phải được sử dụng cùng một đặc quyền. tức là nếu bạn đang chạy thiết bị đầu cuối của bạn được nâng lên và thăng hoa cũng được nâng lên thì nó hoạt động trơn tru.
Joseph Evensen

5

Tôi vừa thực hiện thành công với sự trợ giúp của PowerShell (công cụ dòng lệnh cho windows, cũng được sử dụng làm dòng lệnh mặc định trên GithubforWindows)

Chỉ cần tạo một thư mục "WindowsPowerShell" trên "C: \ Users \% username% \ My Documents". Sau đó, tạo một tệp có tên "profile.ps1". Đảm bảo rằng bạn có phần mở rộng tệp chính xác, .ps1 chứ không phải .txt. bên trong profile.ps1, đặt dòng này để đặt lệnh bí danh:

Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'

Đảm bảo thư mục cao siêu trên máy của bạn là chính xác. Bạn cũng có thể xem chi tiết cấu hình ở đây .

Bây giờ, tôi có thể chỉnh sửa các tệp bằng Sublime Text 2 thông qua lệnh PowerShell chỉ bằng cách gõ:

subl filename

Hy vọng rằng điều này là hữu ích ...


4
Để mở thư mục hiện tại trong Sublime Text 2, bạn có thể sử dụng: subl .
Awayken

Đối với Sublime Text 3, hãy sử dụng subl.exe mới:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones

3

Tôi đã gặp vấn đề tương tự với trình soạn thảo git trong Windows tối nay và cuối cùng tôi đã hiểu.

Bạn sẽ cần đặt đường dẫn trình soạn thảo của mình bằng cú pháp bash và sử dụng định dạng DOS 8.3 để tránh khoảng trắng :

Điều này không hoạt động (đối với tôi):

git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"

Điều này làm:

git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe

Bạn có thể lấy tên DOS 8.3 cho một thư mụcdir / x


1

Tôi chỉ đang vật lộn với điều này vì một số lý do, không có ví dụ nào ở trên khá hiệu quả với tôi. Đây là giải pháp của tôi tuy nhiên:

 git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"

Bạn đặc biệt cần ' 'xung quanh đường dẫn và $*ở cuối của các đối số, tất cả trong " ".


1

Nếu bạn là người dùng Mac, thì đây là cách thực hiện:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'

1

tốt, tôi đã gặp một số khó khăn khi gọi notepad ++ từ gitbash ngay cả sau khi đặt nó làm core.editor của tôi.

tôi đã giải quyết tất cả bằng cách nối thêm dòng dưới đây vào tệp .bashrc trong thư mục cài đặt gitbash của mình.

alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

vì vậy, tôi có thể gọi notepad ++ bằng bí danh "npp". tôi cảm thấy điều này có thể giúp bạn nếu bạn thay đổi thư mục thành trình soạn thảo tương ứng mà bạn muốn sử dụng.


1

Đối với người dùng MAC tôi có thể nói cho Sublime sử dụng như sau:

Đầu tiên Kiểm tra tệp .gitconfig bằng lệnh:

  1. cd ~
  2. ls -la
  3. cat .gitconfig

Bây giờ người ta có thể thêm cấu hình này:

git config --global core.editor "subl -n -wl1"

Nơi l1sẽ nói để bắt đầu ở dòng 1.


0

Đối với Windows 7 tôi đã tìm thấy giải pháp sau đây hoạt động:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"

0

Trên Windows, nếu bạn đang cài đặt git, bạn có thể chọn trình soạn thảo khác và đưa ra dòng lệnh sau. C: \ Tệp chương trình \ Văn bản tuyệt vời 3 \ sublimeSphere.exe -w Trình cài đặt hình ảnh


0

Tôi chưa thấy bất kỳ trường hợp cập nhật nào liên quan đến Windows cho phép cài đặt Git chủ động chọn Sublime Text làm trình chỉnh sửa văn bản mặc định của bạn mà không cần tất cả các mã ghi đè ban đầu ... Văn bản tuyệt vời được hiển thị dưới dạng tùy chọn trong (cài đặt lại) Git


0

Trên MacOS (Mojave) bên dưới đang hoạt động cho tôi cho Sublime 3 :

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -n -w"

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.