命令
作用例項
:py3
執行一條python語句
:py3fprint(『hello world』)
:py3f
執行乙個python模組
:py3f test.py
即在python中可以 import vim 然後使用該模組操作vim表示vim當前所在
其中提供了如下屬性:
line #當前所在行
buffer #當前所在緩衝區
window #當前所在視窗
tabpage #當前所在標籤
buffer,window,tabpage物件均支援python的索引操作
1.內嵌:用 py py用到的python模組:
使用說明:截圖:在vim中執行 :py3f test.py #這裡是你儲存**的名字
然後按f9即類似:vsp方式垂直開啟乙個目錄管理視窗
在管理視窗,使用o鍵,在緩衝區開啟檔案,或者進入資料夾
''' 這是有關檔案管理的外掛程式
'''def__init__
(self)
: self.pre_b =
none
self.b =
none
self.pre_w =
none
self.w =
none
self.p = path(
'.')
.absolute(
)def
open_win
(self)
:'''
開啟乙個視窗用來顯示檔案和資料夾
'''#儲存之前的buffer
self.pre_b = vim.current.
buffer
self.pre_w = vim.current.window
#利用vim命令開啟緩衝區,並繫結對映
vim.command(
':vsp qqqq'
) vim.command(
':normal'
+' h'
) vim.command(
'map o :call open_file()'
)#繫結開啟
#獲得視窗和緩衝區物件
self.w = vim.current.window
self.b = vim.current.
buffer
#設定視窗
self.w.height =
30#區域性緩衝區設定
vim.command(
'set cursorline'
) vim.command(
'set nonu'
)#設定區域性緩衝區的設定
#設定視窗的寬度
self.w.width =
30#把目錄下檔案寫入緩衝區
self.win_show(
)def
win_show
(self)
:'''
用來在視窗中列印出指定path路徑下的檔案和子資料夾
'''self.b[:]
=none
#先清空緩衝區
#一些提示資訊, ..可用來進入上一層
('當前的資料夾'
,self.p)
'.. (up a dir)'))
#開始迭代子檔案和w子資料夾
mulu_n =
3#記錄當前資料夾應該插入的位置,
#資料夾前面插,檔案後面插可以分開檢視
for i in self.p.iterdir():
j = i.name
if j.startswith(
'.')
:continue
if i.is_dir():
j = f'[ ]'
mulu_n +=
1continue
defopen_file
(self)
:'''
使用者按下o鍵時候,進入檔案或資料夾
'''l = vim.current.line
#進入游標行指定的目錄
if l.startswith(
'[')
and l.endswith(
']')
('進入資料夾'
) self.b[:]
=none
path = l.strip(
' ')
self.p = self.p / path
self.win_show(
)#回到上一層目錄
elif l ==
'.. (up a dir)'
: self.p = self.p.parent
self.win_show(
)#當前資料夾只是顯示的,不跳轉
elif
'當前資料夾'
in l:
return
#回到首頁
elif l ==
'-home-'
: self.path =
'~' self.win_show(
)#正常的檔案,直接開啟
else
('進入檔案'
(f'之前的緩衝區'
) vim.current.window = self.pre_w
vim.command(f':e '
) vim.current.window = self.w
#下面是繫結到vim裡面
vim.command(
':py3 fm=filemanage()'
)vim.command(
''' function! open_win()
:py3 fm.open_win()
endfunction
function! open_file()
:py3 fm.open_file()
endfunction
''')vim.command(
'map :call open_win()'
)
用python編寫乙個小遊戲
1.隨機生成兩個數字 1 1000 在控制台中隨機獲取兩個數字相加 如果使用者輸入正確得10分,否則扣10分。總共5道題,最後輸出得分 import random grade 0for i in range 5 num1 random.randint 1,100 num2 random.randin...
用python編寫乙個計算器
1 2 60 30 40.0 5 9 2 5 3 7 3 99 4 2998 10 568 14 4 3 16 3 2 通過python實現,自動判斷括號以及加減乘除的運算優先順序,得出運算結果,顯示運算步驟 import redef atom cal exp if in exp 計算單個的乘法 a...
用python3 7 3編寫乙個問答遊戲
我們先來看一下效果 如下 import random,time 首先初始化 number1 0number2 0answer1 0answer2 0score 0chance 5 在機會用光前重複執行 while chance 0 number1 random.randint 1,100 numbe...