Bash功能有效,但不接受自动完成

时间:2017-06-29 21:18:14

标签: bash

我在.bashrc中写了几个函数,以便在bash中更轻松地导航:

cs

前两个按预期工作:cv移动和列表,cc移动并在vim中打开(或创建文件路径)。 Option Base 1 Sub ReLists() Dim ListSheet As Worksheet Dim DayCorners() As Range Dim Day() Dim Days As Integer Dim CustIDs() Dim CustomerRow() 'for placement in the final list Dim DayList() Dim MaxCustIDs As Integer Dim NewCustID As Boolean Days = 2 MaxCustIDs = 5 ReDim DayCorners(Days) ReDim Day(Days) ReDim CustomerRow(MaxCustIDs + 2) CustomerRow(1) = 0 ReDim CustIDs(MaxCustIDs) ReDim DayItems(1, 1) Set ListSheet = Worksheets("Sheet1") Set DayCorners(1) = ListSheet.Range("A2") Set DayCorners(2) = ListSheet.Range("E2") For d = 1 To Days With ListSheet.Sort .SortFields.Clear .SortFields.Add Key:=DayCorners(d) .SetRange Range(DayCorners(d), DayCorners(d).End(xlDown).Offset(0, 2)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .Apply End With Day(d) = Range(DayCorners(d), DayCorners(d).End(xlDown).Offset(0, 2)) If UBound(Day(d), 1) > UBound(DayItems, 2) Then ReDim DayItems(Days, UBound(Day(d))) End If Next d CustIDCount = 0 For d = 1 To Days For r = 1 To UBound(Day(d), 1) NewCustID = True For u = 1 To UBound(CustIDs) If CustIDs(u) = Day(d)(r, 1) Then NewCustID = False Next u If NewCustID Then CustIDCount = CustIDCount + 1 CustIDs(CustIDCount) = Day(d)(r, 1) End If Next r Next d With Worksheets.Add(After:=Worksheets(ListSheet.Index)) Set DayCorners(1) = .Range("A2") Set DayCorners(2) = .Range("E2") End With ReDim DayList(Days, CustIDCount, 100, 3) For d = 1 To Days For c = 1 To CustIDCount rc = 1 For r = 1 To UBound(Day(d), 1) If Day(d)(r, 1) = CustIDs(c) Then DayList(d, c, rc, 1) = Day(d)(r, 1) DayList(d, c, rc, 2) = Day(d)(r, 2) DayList(d, c, rc, 3) = Day(d)(r, 3) rc = rc + 1 End If Next r If CustomerRow(c) + rc + 2 > CustomerRow(c + 1) Then CustomerRow(c + 1) = CustomerRow(c) + rc + 1 End If Next c If CustomerRow(c - 1) + rc + 2 > CustomerRow(c) Then CustomerRow(c) = CustomerRow(c) + rc End If Next d For d = 1 To Days With DayCorners(d).Offset(-1, 0).Range("A1:C1") .Value = Array("cust id", "item", "Price") 'formatting End With For c = 1 To CustIDCount SumFormula = "=SUM(R[1]C:R[" & (CustomerRow(c + 1) - CustomerRow(c) - 1) & "]C)" With DayCorners(d).Offset(CustomerRow(c), 0).Range("A1:D1") If Not IsEmpty(DayList(d, c, 1, 1)) Then .Value = Array(CustIDs(c), "Sum", SumFormula, "") End If .Interior.Color = 65535 End With For rc = 1 To UBound(Day(d), 1) If IsEmpty(DayList(d, c, rc, 1)) Then Exit For DayCorners(d).Offset(CustomerRow(c) + rc, 0) = DayList(d, c, rc, 1) DayCorners(d).Offset(CustomerRow(c) + rc, 1) = DayList(d, c, rc, 2) DayCorners(d).Offset(CustomerRow(c) + rc, 2) = DayList(d, c, rc, 3) Next rc Next c Next d End Sub 也可以,但是当我尝试使用标签自动完成时,我的shell会冻结。即使 CTRL + C 也不会解冻它。

关于它为何不能自动完成的任何想法?

感谢。

0 个答案:

没有答案