今天就跟大家聊聊有關Emacs下如何使用 lsp-mode對Python進行補全,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站設計制作、成都網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鐵門關做網(wǎng)站,已為上家服務,為鐵門關各地企業(yè)和個人服務,聯(lián)系電話:18982081108LSP 全稱是 Language Server protocol , 是由 Microsoft 主持開發(fā)的通用語言分析器協(xié)議. 最初是為 Visual Studio Code 開發(fā)的, 現(xiàn)在是一個開放的標準1. 它是一個 JSON-RPC -based 的協(xié)議2, 用于編輯器或 IDE 與提供語言分析補全等功能的服務的通信, 編輯器 / IDE 和語言服務甚至可以在不同的機器上1. 理查德·斯托曼 也支持該協(xié)議3.
Python Language Server 就是 Python 語言服務的實現(xiàn), 遵從了 LSP 協(xié)議. 使用 jedi 提供了諸如補全等功能.
使用 pipenv
管理 Python 環(huán)境
cd project_floder pipenv install python-language-server[all]# pipenv install python-language-server[all] --skip-lock
需要安裝以下幾個包, 如果使用 elpa 管理包, 添加
melpa
源后 M-x package-install <RET>
安裝即可
lsp-mode
#Emacs 下 LSP 協(xié)議庫
company-lsp
#使用 company 提供補全的后端
lsp-ui
#提供諸如 flycheck 等功能
Python 和 Emacs 準備階段結束.
使用以下配置需要安裝 use-package
(use-package lsp-mode :config (add-hook 'python-mode-hook (lambda () (lsp-python-enable))) ;; 調用 pyls 既上邊安裝的 Python Language Server ;; 不需要安裝 lsp-python, 以下幾行提供與 lsp-python 相同的功能 (lsp-define-stdio-client lsp-python "python" (lsp-make-traverser #'(lambda (dir) (directory-files dir nil "\\(__init__\\|setup\\)\\.py\\|Pipfile"))) '("pyls"))) (use-package lsp-imenu :init ;; 啟用 lsp-imenu 集成 (add-hook 'lsp-after-open-hook 'lsp-enable-imenu)) (use-package lsp-ui :init ;; 啟用 lsp-ui (add-hook 'lsp-mode-hook 'lsp-ui-mode) ;; 啟用 flycheck (add-hook 'python-mode-hook 'flycheck-mode)) (use-package company-lsp :config ;; 設置 company-lsp 為后端 (push 'company-lsp company-backends))
Python Language Server
可以不必在每個環(huán)境中都安裝, 以 pipenv
為例, 安裝 Python Language Server
到全局 Python
中, 然后在每個環(huán)境下 pipenv shell
進入環(huán)境即可補全該環(huán)境下的包.
(lsp-define-stdio-client lsp-python "python" (lsp-make-traverser #'(lambda (dir) (directory-files dir nil "\\(__init__\\|setup\\)\\.py\\|Pipfile"))) '("pyls"))
這段配置說明了需要在目錄下能找到 __init__.py
等文件后將其作為 project root
使用, 如果沒找到相應文件, 則會拋出找不到項目根目錄的 Warning
, 并且是以 *Warnings* buffer
的形式顯示的, 在 lsp-mode
的 :config
后加入下面一句, 就可以用 Message 而不是 buffer 的形式顯示 Warning.
(setq lsp-message-project-root-warning t)
看完上述內容,你們對Emacs下何使用 lsp-mode對Python進行補全有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,感謝大家的支持。
本文題目:Emacs下如何使用lsp-mode對Python進行補全-創(chuàng)新互聯(lián)
分享URL:http://bm7419.com/article6/cdesig.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、營銷型網(wǎng)站建設、定制網(wǎng)站、虛擬主機、網(wǎng)站策劃、外貿建站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)