References

2024-12-18

@user 이맥스에서 url 북마크 활용하는 방법?

@assistant 이맥스에서 URL 북마크를 활용하는 방법은 다음과 같습니다:

  1. EWW (Emacs Web Wowser) 사용:

    • M-x eww 명령어를 사용하여 웹 브라우저를 열고, B 키를 눌러 북마크를 추가할 수 있습니다. 북마크 목록은 =M-x eww-list-bookmarks=로 확인할 수 있습니다.
  2. 북마크 파일 설정:

    • 기본적으로 EWW는 ~/.emacs.d/eww-bookmarks 파일에 북마크를 저장합니다. 이 파일을 직접 편집하거나 다른 파일로 설정할 수도 있습니다.
  3. 북마크 관리:

    • M-x bookmark-bmenu-list 명령어를 사용하면 모든 북마크를 관리할 수 있는 버퍼가 열립니다. 여기서 북마크를 편집, 삭제, 정렬할 수 있습니다.
  4. org-mode와 통합:

    • =org-mode=를 사용하여 북마크를 관리할 수도 있습니다. =org-capture=를 설정하여 URL을 쉽게 저장할 수 있습니다. 예를 들어, =org-capture-templates=에 다음과 같은 설정을 추가할 수 있습니다:
           (setq org-capture-templates
                 '(("w" "Web site" entry (file+headline "~/org/links.org" "Web Links")
                    "* [[%c][%?]]")))
      이 설정으로 웹사이트를 쉽게 캡처할 수 있습니다.
  5. 외부 북마크 파일 사용:

    • 이맥스에서 =bookmark.el=을 사용하여 북마크를 관리할 수 있습니다. =M-x bookmark-set=으로 북마크를 설정하고, =M-x bookmark-jump=로 북마크로 이동할 수 있습니다.

이 방법들을 통해 이맥스에서 URL 북마크를 효과적으로 활용할 수 있습니다.

@user 아래는 어느 이맥스 설정 파일에 url-bookmarks 관련 코드인데, cc/url-bookmarks가 없거든 아래 코드를 어떻게 동작하게 만들 수 있을까?

 
(load-file (concat user-emacs-directory "url-bookmarks.el"))
 
(defun alist-keys (alist)
  "Return keys of an ALIST."
  (mapcar 'car alist))
 
(defun cc/open-url (key)
  "Open a URL referenced by KEY defined in `cc/url-bookmarks'."
  (interactive (list (completing-read-default "Open URL: "
                                              (alist-keys cc/url-bookmarks))))
  (browse-url (cdr (assoc key cc/url-bookmarks))))

@assistant =cc/url-bookmarks=가 정의되지 않은 경우, 아래와 같은 방법으로 코드를 수정하여 동작하게 만들 수 있습니다:

  1. 직접 URL 목록을 정의: =cc/url-bookmarks=를 직접 정의하여 사용할 수 있습니다.

       (defvar cc/url-bookmarks
         '(("Google" . "https://www.google.com")
           ("Emacs Wiki" . "https://www.emacswiki.org")
           ;; 여기에 원하는 URL을 추가하세요
           ))
     
       (load-file (concat user-emacs-directory "url-bookmarks.el"))
     
       (defun alist-keys (alist)
         "Return keys of an ALIST."
         (mapcar 'car alist))
     
       (defun cc/open-url (key)
         "Open a URL referenced by KEY defined in `cc/url-bookmarks'."
         (interactive (list (completing-read-default "Open URL: "
                                                     (alist-keys cc/url-bookmarks))))
         (browse-url (cdr (assoc key cc/url-bookmarks))))
  2. 외부 파일에서 로드: 만약 url-bookmarks.el 파일이 존재하지 않는다면, =cc/url-bookmarks=를 정의하는 다른 파일을 로드할 수 있습니다.

       (defvar cc/url-bookmarks-file (concat user-emacs-directory "my-url-bookmarks.el"))
     
       (when (file-exists-p cc/url-bookmarks-file)
         (load-file cc/url-bookmarks-file))
     
       (unless (boundp 'cc/url-bookmarks)
         (setq cc/url-bookmarks
               '(("Google" . "https://www.google.com")
                 ("Emacs Wiki" . "https://www.emacswiki.org")
                 ;; 여기에 원하는 URL을 추가하세요
                 )))
     
       (defun alist-keys (alist)
         "Return keys of an ALIST."
         (mapcar 'car alist))
     
       (defun cc/open-url (key)
         "Open a URL referenced by KEY defined in `cc/url-bookmarks'."
         (interactive (list (completing-read-default "Open URL: "
                                                     (alist-keys cc/url-bookmarks))))
         (browse-url (cdr (assoc key cc/url-bookmarks))))

이 방법을 통해 cc/url-bookmarks=가 정의되지 않은 경우에도 코드가 동작하도록 만들 수 있습니다. =my-url-bookmarks.el 파일을 만들어 URL 목록을 정의하거나, 기본 URL 목록을 직접 설정하여 사용할 수 있습니다.

@user my-url-bookmarks.el 파일을 예시로 만들어줄래?

@assistant 물론입니다. 아래는 my-url-bookmarks.el 파일의 예시입니다:

;;; my-url-bookmarks.el --- Custom URL bookmarks for Emacs
 
;; Define the URL bookmarks
(defvar cc/url-bookmarks
  '(("Google" . "https://www.google.com")
    ("Emacs Wiki" . "https://www.emacswiki.org")
    ("GitHub" . "https://github.com")
    ("Emacs Home" . "https://www.gnu.org/software/emacs/")
    ("Stack Overflow" . "https://stackoverflow.com")
    ;; 여기에 원하는 URL을 추가하세요
    ))
 
(provide 'my-url-bookmarks)
 
;;; my-url-bookmarks.el ends here

이 파일을 Emacs 설정 디렉토리(보통 ~/.emacs.d/)에 저장하면 됩니다. 이 파일을 로드하면 cc/url-bookmarks 변수가 정의되어 사용할 수 있습니다. 필요에 따라 URL 목록을 수정하거나 추가할 수 있습니다.

@user 별도로 여기에 북마크를 추가하는 방법도 알려줘

@assistant my-url-bookmarks.el 파일에 북마크를 추가하는 방법은 다음과 같습니다:

  1. 직접 편집: 파일을 직접 열어 새로운 북마크를 추가합니다. 예를 들어, 새로운 북마크를 추가하려면 파일을 열고 다음과 같이 추가하면 됩니다:

       ("New Bookmark" . "https://example.com")

    이렇게 하면 cc/url-bookmarks 변수에 새로운 북마크가 추가됩니다.

  2. Emacs 내에서 편집: Emacs 내에서 my-url-bookmarks.el 파일을 편집할 수도 있습니다. 다음과 같은 명령어를 사용하여 파일을 열고 편집할 수 있습니다:

    • M-x find-file 명령어를 사용하여 my-url-bookmarks.el 파일을 엽니다.
    • 파일을 열고, 새로운 북마크를 추가한 후 저장합니다.
  3. Emacs Lisp 코드로 추가: Emacs Lisp 코드를 사용하여 북마크를 동적으로 추가할 수도 있습니다. 예를 들어, 다음과 같은 코드를 사용하여 새로운 북마크를 추가할 수 있습니다:

       (add-to-list 'cc/url-bookmarks '("New Bookmark" . "https://example.com"))

    이 코드는 cc/url-bookmarks 변수에 새로운 북마크를 추가합니다. 이 코드를 실행하려면, Emacs에서 M-x eval-expression (또는 M-:)을 사용하여 코드를 입력하고 실행하면 됩니다.

  4. Emacs Lisp 함수로 추가: 다음과 같은 함수를 정의하여 북마크를 쉽게 추가할 수 있습니다:

       (defun cc/add-url-bookmark (name url)
         "Add a new URL bookmark with NAME and URL."
         (interactive "sEnter bookmark name: \nsEnter URL: ")
         (add-to-list 'cc/url-bookmarks (cons name url))
         (message "Bookmark added: %s -> %s" name url))

    이 함수를 사용하려면, =M-x cc/add-url-bookmark=를 실행하여 북마크 이름과 URL을 입력하면 됩니다.

이 방법들을 통해 my-url-bookmarks.el 파일에 북마크를 쉽게 추가할 수 있습니다. 필요에 따라 파일을 직접 편집하거나 Emacs Lisp 코드를 사용하여 북마크를 관리할 수 있습니다.

@user